[lazarus] Bitmap transparency?

Micha Nelissen M.Nelissen at student.tue.nl
Wed Nov 12 03:14:32 EST 2003


Mattias Gaertner wrote:

> On Mon, 10 Nov 2003 08:07:09 +0100
> Micha Nelissen <M.Nelissen at student.tue.nl> wrote:
> 
> 
> 
>>I think I can fill the RawImageDesc fields except palette, and I don't 
>>know what to do with RedPrec, RedShift, etc..
> 
> 
> You need to find out the color format of the device/bitmap for this.

Sorry I keep nagging about this subject, but:
1) there is one function not needing a DC to create a bitmap, 
'CreateBitmap'. It is not possible to retrieve color format of this 
bitmap. Even a google search did not turn up anything on the color 
format subject. I guess, nobody uses it.
2) the functions that do have information on color format also need a 
DC. You create a device independant bitmap with CreateDIBSection, and a 
device dependant one with CreateDIBitmap. Long live the winapi, logic is 
nowhere to be found it seems! The names are very unlogical.
3) there is no function to retrieve the color format of a device. One 
can only guess at it, based on BITMAPINFO structure help. That's because 
the winapi support converting the color formats on the fly. For example, 
using CreateDIBitmap, you specify the color format your source bitmap is 
in, and the winapi will convert it to the color format of the target 
device. It seems logical that one would be able to retrieve the color 
format of the device for fast rendering and stuff, but it just seems 
impossible. I think that's the reason why in delphi there is a pfDevice 
for TPixelFormat.

Any tips? Shall I return a default color format in the raw image?

Regards,

Micha.








More information about the Lazarus mailing list