On Mon, 27 Mar 2006 15:29:44 +0200
Tomas Gregorovic <[EMAIL PROTECTED]> wrote:

> Mattias Gaertner napsal(a):
> 
> >On Mon, 13 Mar 2006 11:09:19 +0100
> >Tomas Gregorovic <[EMAIL PROTECTED]> wrote:
> >
> >  
> >
> >>Mattias Gaertner napsal(a):
> >>
> >>    
> >>
> >>>On Fri, 10 Mar 2006 14:15:44 +0100
> >>>Tomas Gregorovic <[EMAIL PROTECTED]> wrote:
> >>>
> >>> 
> >>>
> >>>      
> >>>
> >>>>Hi,
> >>>>finally I have finished my long battle around bitmap masks.
> >>>>
> >>>>I have implemented method CreateBitmapMask, which creates mask
> >according >>>        
> >>>>
> >>>>to transparent color. The white pixels stand for opacity and black for
> >
> >>>>transperency (I have found out that this is in contrary to Delphi). I 
> >>>>hope this routine will function under all supported OSes - I have
> >tested >>>        
> >>>>
> >>>>it on win only.
> >>>>
> >>>>Next, I had to change btimap and image transparent* properties to
> >behave >>>        
> >>>>
> >>>>like Delphi equivalents.
> >>>>
> >>>>The difficult problem was how to keep transparency built  in source of
> >
> >>>>bitmaps such as *.xpm. This I have solved by creating new seperate
> >mask  >>>accessible throught AlphaMaskHandle, which stores alpha channel
> >data  >>>that were previously stored in MaskHandle object.
> >>>>
> >>>>I have attached small test project, which nicely illustrates right
> >mask  >>>functioning.
> >>>>   
> >>>>
> >>>>        
> >>>>
> >>>You added an AlphaMaskHandle, but I don't see when we need both
> >>>MaskHandle and AlphaMaskHandle.
> >>>Why not use the MaskHandle for the Mask?
> >>>
> >>>And btw: Not all widgetsets use separate Handle and MaskHandle.
> >>>
> >>>
> >>>Mattias
> >>> 
> >>>
> >>>      
> >>>
> >>Sorry, my fault. Now when I have better looked into code I see it.
> >>Therefore I have moved into using only MaskHandle and added flag 
> >>FAlphaMasked, which says whether the MaskHandle is source bitmap alpha 
> >>mask and then the transparent color is not used.
> >>    
> >>
> >
> >I took a closer look at the patch:
> >You rewrote TBitmap.InitFPImageReader to not use for the transparentcolor
> >the left, bottom pixel of the coming stream. Why?
> >  
> >
> Because under Windows with bmp picture all pixels with the same color as 
> the left bottom pixel are black (maybe clNone) and I haven't found any 
> way how to get theirs original color.
> 
> >Canvas.Pixels[0,Height-1] does not work under gtk, so
> >TBitmap.GetTransparentColor does not work this way.
> >  
> >
> That's really pitty. Is it not implemented yet or is it impossible?

Not implemented. I don't how to implement it.

 
> >And where do you actually create the alpha mask?
> >  
> >
> I create the aplha mask in function CreateBitmapMask. I draw source 
> bitmap to monochromatic mask bitmap using a trick which changes the 
> transparent color to white in the mask bitmap. I am not sure if it is 
> multiplatform.

And where is the 8 or 16 bit alpha mask created?

Mattias

_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to