[lazarus] Bitmap transparency?

Mattias Gaertner nc-gaertnma at netcologne.de
Sun Nov 9 16:49:18 EST 2003


On Sun, 09 Nov 2003 17:16:13 +0100
Micha Nelissen <M.Nelissen at student.tue.nl> wrote:

> Mattias Gaertner wrote:
> 
> > On Sun, 09 Nov 2003 15:08:06 +0100
> > Micha Nelissen <M.Nelissen at student.tue.nl> wrote:
> > 
> > 
> >>Mattias Gaertner wrote:
> >>
> >>
> >>>On Sat, 08 Nov 2003 18:15:13 +0100
> >>>Marc Weustink <marc at dommelstein.net> wrote:
> >>>
> >>>
> >>>
> >>>>>Yes, but the LCL depends on this 'native' pixmap support for
> >>>>>transparency.
> >>>
> >>>
> >>>Only in a few cases. And they can be changed easily. In fact, they are
> >>>leftovers from days whithout choice.
> >>>
> >>>Some general notes:
> >>>Eventually we will switch to fpImage. This means the LCL won't need
> >>>CreatePixmapIndirect anymore. fpImage requires, that the win32 intf
> >>>supports the 5 RawImage functions.
> >>>Micha, can you implement them?
> >>
> >>I have been looking, but I can't find it in the archives / code: what 
> >>functions do I need to implement?
> > 
> > 
> > See winapih.inc, search for RawImage.
> > See graphtype.pp for the RawImage format. 
> > intfgraphics.pas contains the TLazIntfImage which uses the 5 functions.
> > 
> > I suggest you start with
> > GetBitmapRawImageDescription
> > then
> > GetRawImageFromBitmap
> > then
> > CreateBitmapFromRawImage
> > then the other two.
> 
> function GetRawImageFromBitmap(SrcBitmap, SrcMaskBitmap: HDC; const 
> SrcRect: TRect; var NewRawImage: TRawImage): boolean; {$IFDEF 
> IF_BASE_MEMBER}virtual;{$ENDIF}
> 
> Shouldn't those HDC's be HBITMAP's?

Yes. Feel free to change them.

 
> BTW: HBITMAP's don't know anything about their palette in win32. I know 
> palettes are not supported yet, but how should I work with it? Ie. I 
> must fill the ImageDescription with something.

Hmm. What kind of information is available for a bitmap under win32?


Mattias






More information about the Lazarus mailing list