RGB: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 14: Line 14:
* {{Parameter|blue&}} specifies the blue component intensity from 0 to 255.
* {{Parameter|blue&}} specifies the blue component intensity from 0 to 255.
* Intensity values outside the valid range are clipped.
* Intensity values outside the valid range are clipped.
* Returns [[LONG]] 32-bit hexadecimal values from '''&HFF{{text|00|red}}{{text|00|green}}{{text|00|blue}}''' to '''&HFF{{text|FF|red}}{{text|FF|green}}{{text|FF|blue}}''', always with full [[_ALPHA]].
* Returns [[LONG]] 32-bit hexadecimal values from '''&HFF{{Text|00|red}}{{Text|00|green}}{{Text|00|blue}}''' to '''&HFF{{Text|FF|red}}{{Text|FF|green}}{{Text|FF|blue}}''', always with full [[_ALPHA]].
* When [[LONG]] values are [[PUT]] to file, the ARGB values become BGRA. Use [[LEFT$]]([[MKL$]]({{Parameter|colorIndex~&}}), 3) to place 3 colors.
* When [[LONG]] values are [[PUT]] to file, the ARGB values become BGRA. Use [[LEFT$]]([[MKL$]]({{Parameter|colorIndex~&}}), 3) to place 3 colors.
* If the {{Parameter|imageHandle&}} is omitted the image is assumed to be the current [[_DEST|destination]] or [[SCREEN]] page.
* If the {{Parameter|imageHandle&}} is omitted the image is assumed to be the current [[_DEST|destination]] or [[SCREEN]] page.
Line 36: Line 36:
{{Cl|NEXT}}
{{Cl|NEXT}}
{{CodeEnd}}
{{CodeEnd}}
{{OutputStart}}{{text|COLOR 1 <nowiki>=</nowiki> &HFF0000A8|#0000A8}}
{{OutputStart}}{{Text|COLOR 1 <nowiki>=</nowiki> &HFF0000A8|#0000A8}}
{{text|COLOR 2 <nowiki>=</nowiki> &HFF00A800|#00A800}}
{{Text|COLOR 2 <nowiki>=</nowiki> &HFF00A800|#00A800}}
{{text|COLOR 3 <nowiki>=</nowiki> &HFF00A8A8|#00A8A8}}
{{Text|COLOR 3 <nowiki>=</nowiki> &HFF00A8A8|#00A8A8}}
{{text|COLOR 4 <nowiki>=</nowiki> &HFFA80000|#A80000}}
{{Text|COLOR 4 <nowiki>=</nowiki> &HFFA80000|#A80000}}
{{text|COLOR 5 <nowiki>=</nowiki> &HFFA800A8|#A800A8}}
{{Text|COLOR 5 <nowiki>=</nowiki> &HFFA800A8|#A800A8}}
{{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}}
{{text|COLOR 8 <nowiki>=</nowiki> &HFF545454|#545454}}
{{Text|COLOR 8 <nowiki>=</nowiki> &HFF545454|#545454}}
{{text|COLOR 9 <nowiki>=</nowiki> &HFF5454FC|#5454FC}}
{{Text|COLOR 9 <nowiki>=</nowiki> &HFF5454FC|#5454FC}}
{{text|COLOR 10 <nowiki>=</nowiki> &HFF54FC54|#54FC54}}
{{Text|COLOR 10 <nowiki>=</nowiki> &HFF54FC54|#54FC54}}
{{text|COLOR 11 <nowiki>=</nowiki> &HFF54FCFC|#54FCFC}}
{{Text|COLOR 11 <nowiki>=</nowiki> &HFF54FCFC|#54FCFC}}
{{text|COLOR 12 <nowiki>=</nowiki> &HFFFC5454|#FC5454}}
{{Text|COLOR 12 <nowiki>=</nowiki> &HFFFC5454|#FC5454}}
{{text|COLOR 13 <nowiki>=</nowiki> &HFFFC54FC|#FC54FC}}
{{Text|COLOR 13 <nowiki>=</nowiki> &HFFFC54FC|#FC54FC}}
{{text|COLOR 14 <nowiki>=</nowiki> &HFFFCFC54|#FCFC54}}
{{Text|COLOR 14 <nowiki>=</nowiki> &HFFFCFC54|#FCFC54}}
{{text|COLOR 15 <nowiki>=</nowiki> &HFFFCFCFC|#FCFCFC}}
{{Text|COLOR 15 <nowiki>=</nowiki> &HFFFCFCFC|#FCFCFC}}
{{OutputEnd}}
{{OutputEnd}}
:''Note:'' This procedure also shows how the returns from [[_RGB]] and [[_RGB32]] differ in a non-32 bit screen mode.
:''Note:'' This procedure also shows how the returns from [[_RGB]] and [[_RGB32]] differ in a non-32 bit screen mode.
Line 60: Line 60:
* [[_LOADIMAGE]], [[_NEWIMAGE]]
* [[_LOADIMAGE]], [[_NEWIMAGE]]
* [[HEX$ 32 Bit Values]], [[POINT]]
* [[HEX$ 32 Bit Values]], [[POINT]]
* [[SAVEIMAGE]]
* [[SaveImage SUB]]
* [http://www.w3schools.com/html/html_colornames.asp Hexadecimal Color Values]
* [http://www.w3schools.com/html/html_colornames.asp Hexadecimal Color Values]




{{PageNavigation}}
{{PageNavigation}}

Latest revision as of 20:04, 5 January 2024

The _RGB function returns the closest palette attribute index (legacy SCREEN modes) OR the LONG 32-bit color value (32-bit screens).


Syntax

colorIndex~& = _RGB(red&, green&, blue&[, imageHandle&])


Description

  • 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 resulting color 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, always with full _ALPHA.
  • When LONG values are PUT to file, the ARGB values become BGRA. Use LEFT$(MKL$(colorIndex~&), 3) to place 3 colors.
  • If the imageHandle& 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.


Examples

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      'multiply by 4 to convert intensity to 0 to 255 RGB 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



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link