From Xojo Documentation
Jump to: navigation, search

Returns a Color based on the CMY (cyan, magenta, yellow) color model and the specified level of transparency. Use the new form of the Picture constructor to create pictures that support the alpha channel or convert existing pictures to the new format using the code described in HasAlphaChannel.


result=CMY(cyan, magenta, yellow [, alpha = 0])

Part Type Description
result Color An object that represents the color based on the cyan, magenta, and yellow values.
cyan Double The value of Cyan in the color (0-1).
magenta Double The value of Magenta in the color (0-1).
yellow Double The value of Yellow in the color (0-1).
alpha Integer The value of transparency in the color (0-255). Zero is completely opaque and 255 is transparent. If omitted, the default is 0 (no transparency).


The CMY function returns a Color based on the amounts of Cyan, Magenta, Yellow, and transparency passed. The color amounts are represented by doubles between 0 and 1 and are stored internally as three bytes. The level of transparency is an optional Integer from 0-255. If omitted, it defaults to completely opaque. You can also use either the RGB or HSV models to assign a color and you can also specify a color with the RGB model using the &c literal. All alternatives support the optional transparency parameter.


This example uses the CMY function to assign a Color. It is in the Paint event of a Canvas or a Window.



The following example draws sample color patches in a Canvas with varying levels of transparency. With the HSV function, the range is from 0 to 255. Zero is completely opaque and 255 is completely transparent. The code is in the Paint event.

g.ForeColor=cmy(0.,1.,1.0) //red, no transparency
g.Drawrect 0,0,200,50

g.FillRect 0,0,200,50
g.ForeColor =cmy(0.,0.,0.)
g.DrawString "Translucent = 0",210,10

g.ForeColor=cmy(0.,1.0,1.0,76) //transparency = .3

g.FillRect 0,70,200,50
g.ForeColor =cmy(0.,0.,0.)
g.DrawString "Translucent = 30%",210,80

g.ForeColor=cmy(0.,1.0,1.0,127) //transparency = .5

g.FillRect 0,140,200,50
g.ForeColor =cmy(0.,0.,0.,0)
g.DrawString "Translucent = 50%",210,150

g.ForeColor=cmy(0.0,1.0,1.0,178) //transparency = .7

g.FillRect 0,210,200,50
g.ForeColor =cmy(0.,0.,0.,0)
g.DrawString "Translucent = 70%",210,220

g.ForeColor=hsv(0.0,1.0,1.0,229) //transparency = .9

g.FillRect 0,280,200,50
g.ForeColor =cmy(0.,0.,0.,0)
g.DrawString "Translucent = 90%",210,290

The result is shown here.

Sample red color patches illustrating transparency.

See Also

Color data type; HSV, RGB, SelectColor functions; &c literal.

Personal tools

Starting Out
Dig Deeper
More Help