This wiki is out of date, use the continuation of this wiki instead

Rgb

From FenixWiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 00:49, 23 April 2007 (edit)
Sandman (Talk | contribs)

← Previous diff
Current revision (14:10, 5 August 2008) (edit) (undo)
Sandman (Talk | contribs)
m (Example)
 
(3 intermediate revisions not shown.)
Line 24: Line 24:
== Notes == == Notes ==
-Different color depths have different color codes, this is why rgb() is useful: it returns the appropriate code, based on the current color depth. When in 8bit mode, this code is 0..255 and when in 16bit mode 0..655535.+Different color depths have different color codes, this is why rgb() is useful: it returns the appropriate code, based on the current color depth. When in 8bit mode, this code is 0..255 and when in 16bit mode 0..65535.
 + 
 +Using this function in different color depths can be tricky. This is because rgb() will return a different color code under different color depths.
 +For example, when at 8bit, we do:
 +<pre>my_color = rgb(100,100,100);</pre>
 +my_color will most likely have the value ''6'' at this time. Suppose we change the color depth to 16bit now, using [[set_mode]](). Now, my_color holds a totally different color than before, as ''6'' is nowhere near rgb(100,100,100) in 16bit mode. To counter this effect, my_color needs to be reinitialized:
 +<pre>my_color = rgb(100,100,100);</pre>
 +The same code, but rgb() now returns the proper code, as it always returns the code belonging to the current color depth.
 +my_color will now be about ''25388''.
== Example == == Example ==
<pre> <pre>
-Program awesome;+ 
Global Global
- red=0;+ byte red=0;
- green=255;+ byte green=255;
- blue=0;+ byte blue=0;
 +End
 +Process Main()
Begin Begin
Line 42: Line 52:
write(0,1,1,0,"Mijn potlood is bruin"); //this text will be green as an Irishman's ejecta write(0,1,1,0,"Mijn potlood is bruin"); //this text will be green as an Irishman's ejecta
- Loop+ Repeat
- +
frame; frame;
- End+ Until(key(_ESC))
 + 
End End
 +</pre>
 +Used in example: [[set_text_color]](), [[write]](), [[key]]()

Current revision


Contents

[edit] Definition

WORD rgb ( <BYTE red> , <BYTE green> , <BYTE blue> )

Finds the single color in the current color mode closest to the combined red, green, and blue values specified.

[edit] Parameters

BYTE red - Level of red in the desired color from 0 to 255.
BYTE green - Level of green in the desired color from 0 to 255.
BYTE blue - Level of blue in the desired color from 0 to 255.

[edit] Returns

WORD : Returns the best matched color code.

[edit] Notes

Different color depths have different color codes, this is why rgb() is useful: it returns the appropriate code, based on the current color depth. When in 8bit mode, this code is 0..255 and when in 16bit mode 0..65535.

Using this function in different color depths can be tricky. This is because rgb() will return a different color code under different color depths. For example, when at 8bit, we do:

my_color = rgb(100,100,100);

my_color will most likely have the value 6 at this time. Suppose we change the color depth to 16bit now, using set_mode(). Now, my_color holds a totally different color than before, as 6 is nowhere near rgb(100,100,100) in 16bit mode. To counter this effect, my_color needs to be reinitialized:

my_color = rgb(100,100,100);

The same code, but rgb() now returns the proper code, as it always returns the code belonging to the current color depth. my_color will now be about 25388.

[edit] Example


Global
    byte red=0;
    byte green=255;
    byte blue=0;
End

Process Main()
Begin
    
    set_text_color(rgb(red,green,blue)); // rgb finds the color closest to pure green and
                                         // passes it to set_text_color

    write(0,1,1,0,"Mijn potlood is bruin"); //this text will be green as an Irishman's ejecta
        
    Repeat
        frame;
    Until(key(_ESC))

End

Used in example: set_text_color(), write(), key()

Personal tools