Difference between revisions of "RGB"
imported>Clippy m |
imported>Clippy m |
||
Line 39: | Line 39: | ||
{{text|COLOR 6 <nowiki>=</nowiki> &HFFA85400|#A85400}} | {{text|COLOR 6 <nowiki>=</nowiki> &HFFA85400|#A85400}} | ||
{{text|COLOR 7 <nowiki>=</nowiki> &HFFA8A8A8|#A8A8A8}} | {{text|COLOR 7 <nowiki>=</nowiki> &HFFA8A8A8|#A8A8A8}} | ||
− | COLOR 8 = &HFF545454 | + | {{text|COLOR 8 <nowiki>=</nowiki> &HFF545454|#545454}} |
− | COLOR 9 = &HFF5454FC | + | {{text|COLOR 9 <nowiki>=</nowiki> &HFF5454FC|#5454FC}} |
− | COLOR 10 = &HFF54FC54 | + | {{text|COLOR 10 <nowiki>=</nowiki> &HFF54FC54|#54FC54}} |
− | COLOR 11 = &HFF54FCFC | + | {{text|COLOR 11 <nowiki>=</nowiki> &HFF54FCFC|#54FCFC}} |
− | COLOR 12 = &HFFFC5454 | + | {{text|COLOR 12 <nowiki>=</nowiki> &HFFFC5454|#FC5454}} |
− | COLOR 13 = &HFFFC54FC | + | {{text|COLOR 13 <nowiki>=</nowiki> &HFFFC54FC|#FC54FC}} |
− | COLOR 14 = &HFFFCFC54 | + | {{text|COLOR 14 <nowiki>=</nowiki> &HFFFCFC54|#FCFC54}} |
− | COLOR 15 = &HFFFCFCFC | + | {{text|COLOR 15 <nowiki>=</nowiki> &HFFFCFCFC|#FCFCFC}} |
{{OutputEnd}} | {{OutputEnd}} | ||
Revision as of 18:37, 9 September 2012
The _RGB function returns the closest palette attribute index OR the LONG 32 bit color value in 32 bit screens only.
- colorindex~& = _RGB(red, green, blue[, image_handle])
- The value returned is either the closest color attribute number or a 32 bit _UNSIGNED LONG color value.
- Return variable types MUST be LONG or you may lose the _BLUE value!
- red& specifies the red component intensity from 0 to 255.
- green& specifies the green component intensity from 0 to 255.
- blue& specifies the blue component intensity from 0 to 255.
- Intensity values outside the valid range are clipped.
- Returns LONG 32 bit hexadecimal values from &HFF000000 to &HFFFFFFFF with full _ALPHA only.
- When LONG values are PUT to file, the ARGB values become BGRA. Use LEFT$(MKL$(colorvalue&), 3) to place 3 colors.
- If the image_handle is omitted the image is assumed to be the current destination or SCREEN page.
- Colors returned are ALWAYS opaque as the transparency value is always 255! Use _ALPHA or _CLEARCOLOR to change it.
- NOTE: Default 32 bit backgrounds are clear black or _RGBA(0, 0, 0, 0)! Use CLS to make the black opaque!
Example: Converting the color port RGB intensity palette values 0 to 63 to 32 bit hexadecimal values.
SCREEN 12 DIM hex32$(15) FOR attribute = 1 TO 15 OUT &H3C7, attribute 'set color attribute to read red = INP(&H3C9) * 4 'convert port setting to 32 bit values grn = INP(&H3C9) * 4 blu = INP(&H3C9) * 4 hex32$(attribute) = "&H" + HEX$(_RGB32(red, grn, blu)) 'always returns the 32 bit value COLOR attribute PRINT "COLOR" + STR$(_RGB(red, grn, blu)) + " = " + hex32$(attribute) 'closest attribute NEXT
COLOR 1 = &HFF0000A8 COLOR 2 = &HFF00A800 COLOR 3 = &HFF00A8A8 COLOR 4 = &HFFA80000 COLOR 5 = &HFFA800A8 COLOR 6 = &HFFA85400 COLOR 7 = &HFFA8A8A8 COLOR 8 = &HFF545454 COLOR 9 = &HFF5454FC COLOR 10 = &HFF54FC54 COLOR 11 = &HFF54FCFC COLOR 12 = &HFFFC5454 COLOR 13 = &HFFFC54FC COLOR 14 = &HFFFCFC54 COLOR 15 = &HFFFCFCFC
- Note: This procedure also shows how the returns from _RGB and _RGB32 differ in a non-32 bit screen mode.
See also
- _RGBA, _RGB32, _RGBA32
- _RED, _GREEN, _BLUE
- _LOADIMAGE, _NEWIMAGE
- HEX$ 32 Bit Values, POINT
- SAVEIMAGE (bitmap creator)
- Hexadecimal Color Values