Einzelnen Beitrag anzeigen

Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: TPNGImage - Alphachannel in Bitmap anzeigen

  Alt 22. Apr 2006, 13:05
Hi!

Wenn du sowas wie im Anhang suchst dann kannst du diesen Code nehmen:
Delphi-Quellcode:
var
  PNG : TPNGObject;
  AlphaBMP : TBitmap;
  Scanline : pByteArray;
  x,y : Integer;

begin
  PNG:=TPNGObject.Create;
  PNG.LoadFromFile('E:\Icons\PNGIcons\nuvola\64x64\filesystems\link.png');
  png.Draw(Image1.Canvas,Rect(0,0,Png.Width,png.Height));

  AlphaBMP:=TBitmap.Create;
  AlphaBMP.Width:=png.Width;
  AlphaBMP.Height:=png.Height;
  AlphaBMP.PixelFormat:=pf8bit;

  for y:=0 to png.Height-1 do
  begin
    Scanline:=png.AlphaScanline[y];
    for x:=0 to png.Width-1 do
      AlphaBMP.Canvas.Pixels[x,y]:=RGB(Scanline^[x],Scanline^[x],Scanline^[x]);
  end;
  PaintBox1.Canvas.Draw(0,0,AlphaBMP);
  AlphaBMP.SaveToFile('c:\test.bmp');
  AlphaBMP.Free;
  png.Free;
end;
Miniaturansicht angehängter Grafiken
alpha_png_213.png  
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat