Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Auf Canvas zeichnen, wenn PNG

  Alt 8. Mai 2011, 16:42
Du musst das PNG erst auf ein Bitmap kopieren, zum Speichern umgekehrt...
Das ist nicht korrekt.
Folgendes Beispiel funktioniert ohne Probleme:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Picture.LoadFromFile('xxx.png');
  with TPNGImage(Image1.Picture.Graphic) do
  begin
    Canvas.Brush.Color:=clRed;
    Canvas.Rectangle(10,10,50,50);
  end;
  Image1.Refresh;
end;
Wer's nicht glaubt: Ich kann die Demo gern anhängen...
Welche PNGImage-Version verwendest Du?
Hmm, vielleicht funktioniert das unter XE, früher (bei der OpenSource-Version) war TPNGObject.Canvas AFAIR Read-Only.
Inwiefern beim Kopieren der Alpha-Channel erhalten bleibt, weiß ich nicht sicher, aber prinzipiell hätte ein 32Bit-Bitmap Platz dafür.

Ich nutze für die Bearbeitung von PNGs aber eh immer Graphics32 mit der GR32_PNG-Unit...
  Mit Zitat antworten Zitat