[fpc-pascal] Does FCL Image support transparency?

Michael Van Canneyt michael at freepascal.org
Fri Sep 16 20:31:30 CEST 2016


>>> I want to put watermarks on images in a command line application.
>>> This doesn't do the trick:
>>>
>>> ScaledImage:=TFPCompactImgRGBA8Bit.Create(Width, Height);
>>> Canvas:=TFPImageCanvas.Create(ScaledImage); // TFPImageCanvas
>>> Canvas.StretchDraw(0,0,Width,Height,Image); // Image is TFPCompactImgRGB8Bit
>>> Canvas.Draw(0,0,Watermark); // Watermark is an TFPCompactImgRGBA8Bit
>>>
>>> Watermark is a transparent PNG loaded from disk but the transparency is not respected when drawing it onto ScaledImage.
>>>
>>> Can FCL Image do this and if not what are my alternatives?
>>
>> It should be able to do this, yes.
>
> TFPCustomCanvas.Draw does not handle Alpha by merging. It simply copies
> the pixel. Is this a bug or by design?

I would say it is a bug.

Thinking about it, i would add a parameter to the call to enable this, for
efficiency.

Michael.



More information about the fpc-pascal mailing list