- fix Init_BPP32_B8G8R8A8_M1_BIO_TTB
- fix PngReader - it now handles 1 color transparent png images

git-svn-id: trunk@15571 -
This commit is contained in:
paul 2008-06-25 05:04:47 +00:00
parent 53eb1c68b1
commit 36feee63d6
4 changed files with 10 additions and 6 deletions

View File

@ -784,7 +784,7 @@ end;
procedure TRawImageDescription.Init_BPP32_B8G8R8A8_M1_BIO_TTB(AWidth, AHeight: integer);
begin
Init_BPP32_B8G8R8A8_BIO_TTB(Width, Height);
Init_BPP32_B8G8R8A8_BIO_TTB(AWidth, AHeight);
MaskBitsPerPixel := 1;
MaskBitOrder := riboBitsInOrder;

View File

@ -125,7 +125,7 @@ begin
SCB.FImage.FreeData;
IntfImg.GetRawImage(SCB.FImage, True);
SCB.FHasMask := IntfImg.HasMask;
if not IntfImg.HasMask
if not SCB.FHasMask
then SCB.FImage.Description.MaskBitsPerPixel := 0;
finally
LazReader := nil;

View File

@ -18,7 +18,7 @@
constructor TGraphic.Create;
begin
Inherited Create;
inherited Create;
end;
procedure TGraphic.Clear;

View File

@ -2924,7 +2924,7 @@ end;
function TLazIntfImage.HasMask: boolean;
begin
Result := FMaskSet;
Result := FMaskSet or FRawImage.IsMasked(False);
end;
constructor TLazIntfImage.Create(AWidth, AHeight: integer);
@ -5101,10 +5101,14 @@ begin
if FUpdateDescription and (theImage is TLazIntfImage)
then begin
// init some default
Desc.Init_BPP32_B8G8R8A8_BIO_TTB(Header.Width, Header.height);
IsGray := Header.ColorType and 3 = 0;
IsAlpha := (Header.ColorType and 4 <> 0) or FAlphaPalette;
// Paul: todo - remove UseTransparent and use mask if no alpha
IsAlpha := (Header.ColorType and 4 <> 0) or FAlphaPalette or UseTransparent;
if not IsAlpha and UseTransparent
then Desc.Init_BPP32_B8G8R8A8_M1_BIO_TTB(Header.Width, Header.height)
else Desc.Init_BPP32_B8G8R8A8_BIO_TTB(Header.Width, Header.height);
if IsGray
then Desc.Format := ricfGray;