mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 21:42:51 +02:00
lcl: TCustomImageList.InsertMasked - add mask to the image description if source does not have it before masking
git-svn-id: trunk@36697 -
This commit is contained in:
parent
cf85a988a4
commit
8814a4f697
@ -814,6 +814,7 @@ procedure TCustomImageList.InsertMasked(Index: Integer; AImage: TCustomBitmap;
|
|||||||
var
|
var
|
||||||
RawImg: TRawImage;
|
RawImg: TRawImage;
|
||||||
SourceImage, MaskedImage: TLazIntfImage;
|
SourceImage, MaskedImage: TLazIntfImage;
|
||||||
|
MaskedDescription, DeviceDescription: TRawImageDescription;
|
||||||
begin
|
begin
|
||||||
if AImage = nil then Exit;
|
if AImage = nil then Exit;
|
||||||
SourceImage := TLazIntfImage.Create(AImage.RawImage, False);
|
SourceImage := TLazIntfImage.Create(AImage.RawImage, False);
|
||||||
@ -821,6 +822,16 @@ begin
|
|||||||
MaskedImage := TLazIntfImage.Create(0,0,[]);
|
MaskedImage := TLazIntfImage.Create(0,0,[]);
|
||||||
try
|
try
|
||||||
MaskedImage.DataDescription := SourceImage.DataDescription;
|
MaskedImage.DataDescription := SourceImage.DataDescription;
|
||||||
|
if MaskedImage.DataDescription.MaskBitsPerPixel = 0 then
|
||||||
|
begin
|
||||||
|
MaskedDescription := MaskedImage.DataDescription;
|
||||||
|
DeviceDescription := GetDescriptionFromDevice(0, 0, 0);
|
||||||
|
MaskedDescription.MaskBitsPerPixel := DeviceDescription.MaskBitsPerPixel;
|
||||||
|
MaskedDescription.MaskBitOrder := DeviceDescription.MaskBitOrder;
|
||||||
|
MaskedDescription.MaskLineEnd := DeviceDescription.MaskLineEnd;
|
||||||
|
MaskedDescription.MaskShift := DeviceDescription.MaskShift;
|
||||||
|
MaskedImage.DataDescription := MaskedDescription;
|
||||||
|
end;
|
||||||
MaskedImage.CopyPixels(SourceImage);
|
MaskedImage.CopyPixels(SourceImage);
|
||||||
MaskedImage.Mask(TColorToFPColor(ColorToRGB(MaskColor)));
|
MaskedImage.Mask(TColorToFPColor(ColorToRGB(MaskColor)));
|
||||||
MaskedImage.GetRawImage(RawImg);
|
MaskedImage.GetRawImage(RawImg);
|
||||||
|
Loading…
Reference in New Issue
Block a user