Hi zusammen,
was mache ich falsch, wenn aus diesem Bild (der weiße Bereich ist laut
Fireworks transparent)
http://www.andreaswortmann.de/temp/test.png
durch folgenden Code (siehe auch oben)
Code:
var
PNG : TPNGObject;
AlphaBitmap : TBitmap;
Scanline , ToScanLine : pByteArray ;
y : Integer;
begin
PNG := TPNGObject.Create;
PNG.LoadFromFile('test.png');
AlphaBitmap := TBitmap.Create;
AlphaBitmap.Width := PNG.Width;
AlphaBitmap.Height := PNG.Height;
AlphaBitmap.PixelFormat := pf8bit;
for y:=0 to png.Height-1 do
begin
Scanline := PNG.AlphaScanline[y];
ToScanLine := AlphaBitmap.ScanLine[y];
CopyMemory(ToScanLine, Scanline, PNG.Width);
end;
Image1 . Picture . Assign ( AlphaBitmap ) ;
AlphaBitmap.Free;
PNG.Free;
end;
dieses Bild
http://www.andreaswortmann.de/temp/ausgabe.png
wird?
Gibt es (mitterlweile) irgendeine native oder elegantere Möglichkeit PNGs samt Transparenz auf
VCL-Komponenten abzubilden?
Danke im Voraus,
Spes