Einzelnen Beitrag anzeigen

Spes

Registriert seit: 21. Aug 2007
14 Beiträge
 
#10

Re: TPNGImage - Alphachannel in Bitmap anzeigen

  Alt 18. Jan 2008, 13:22
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
  Mit Zitat antworten Zitat