[cairo] Applying to a surface the alpha of other
Carlos López González
genetita at gmail.com
Tue Oct 16 09:43:40 PDT 2012
unfortunately the proposed solution doesn't work. When a ARGB32 color
is painted in a RGB24 surface, the colors are multiplied by the alpha.
Say I have a ARGB color:
ARGB(0.8, 1.0, 0.5, 0.5)
once painted to a RGB24 surface it becomes:
RGB(0.8, 0.4, 0.4)
Later if I mask back this color thru a 0.6 alpha mask, then it keeps
the RGB values and keeps the alpha but the colors are washed out:
ARGB(0.6, 0.8, 0.4, 0.4)
When my desired result is
ARGB(0.6, 1.0, 0.5, 0.5) that is keep the colors of one surface and
apply the alpha of other.
Any other idea?
2012/10/16 Carlos López González <genetita at gmail.com>:
>>> Then basically the question is: How do I change the alpha channel of
>>> all the pixels to be 1.0?
>> How about painting it to an RGB24 surface (with operator source)?
> Ah great idea! I'll give it a try and let you know.
More information about the cairo