Hallo zusammen
Leider hat mich meine Suche durch das Internet nicht weitergebracht. Ich versuchs jetzt mal bei den Profis
.
Ich erstelle ein Bild vom Typ TPngImage. Dieses Bild beinhaltet einen transparenten Bereich. Nun will ich dieses Bild mit der ganzen Transparenz in die Zwischablage nehmen, um es zB. in Excel einzufügen. Funktioniert ziemlich alles ...nur die Transparenz nimmt er nicht mit.
Wenn ich das PNG speichere, dann speichert er das Bild mit Transparenz. Im Clipboard macht er das nicht. Der ganze Code ist nur testweise, war am rumprobieren. Daher viel Sinn ergibt das bmp->png nicht.
Es gibt eine Methode von TPngImage :SaveToClipboardFormat. Damit komm ich aber wegen KnowHow-Mangel nicht klar. Vielleicht wäre das eine Lösung.
Ausserdem habe ich von einer
API-Funktion nahmens "RegisterClipboardFormat" gelsen. Ich konnte sie zwar implementieren, aber es tut sich trotzdem nichts.
Vielen Dank für eure Hilfe!
Delphi-Quellcode:
uses
pngimage,Clipbrd;
var
bmp: TBitmap;
png: TPngImage;
begin
bmp := TBitmap.Create;
bmp.SetSize(200,200);
bmp.Canvas.Brush.Color := clRed;
bmp.Canvas.Rectangle( 20, 20, 160, 160 );
bmp.Canvas.Brush.Style := bsClear;
bmp.Canvas.Rectangle(1, 1, 199, 199);
bmp.Canvas.Brush.Color := clWhite;
bmp.Canvas.Pen.Color := clRed;
bmp.Canvas.TextOut( 35, 20, 'Hello transparent world');
bmp.TransparentColor := clWhite;
bmp.Transparent := True;
png := TPngImage.Create;
png.Assign( bmp );
png.SaveToFile( 'C:\test.png' );
Clipboard.Assign(png);
bmp.Free;
png.Free;
end;