[Lazarus] Raster image data in RGB24 or ARGB32

Luiz Americo Pereira Camara luizmed at oi.com.br
Tue Mar 2 18:40:16 CET 2010


petr.kristan at epos.cz escreveu:
> Hi.
>
> I'am working on Cairo Canvas implementation 
> and for implementing StretchDraw function I need 
> to get RasterImage data in format RGB24 or ARGB32.
>
> CAIRO_FORMAT_ARGB32
>   each pixel is a 32-bit quantity, with alpha in the upper 8 bits, then
> red, then green, then blue. The 32-bit quantities are stored
> native-endian. Pre-multiplied alpha is used. (That is, 50% transparent
> red is 0x80800000, not 0x80ff0000.)
>
> CAIRO_FORMAT_RGB24
>   each pixel is a 32-bit quantity, with the upper 8 bits unused. Red,
> Green, and Blue are stored in the remaining 24 bits in that order. 
>
> Can I use TLazIntfImage for this task and how?
>   

AFAIK is not possible. Search for thread "How to load aRGBA data from a 
bitmap file using TLazIntfImage" in Lazarus list.

Also read http://forum.lazarus.freepascal.org/index.php/topic,7771.0.html

BTW: in LuiImage implementation you can find how implement StrechDraw 
feature in cairo: 
http://luipack.googlecode.com/svn/trunk/luicairo/luiimage.pas

There you will find also how to get the appropriate data format for 
cairo using imaginglib

Luiz




More information about the Lazarus mailing list