Hy,
ich habe in einem FMX Projekt auf einer Form ein TImage.
Das soll einfach gespeichert werden.
Dazu kopiere ich es in eine TBitmap und speichere mit SaveToFile.
Funktioniert auch - aber das Bild ist recht und unten abgeschnitten.
Delphi-Quellcode:
procedure TFHaupt.btnThisClick(Sender: TObject);
var
MyBitmap: TBitmap;
rectFrame: TRectF;
begin
MyBitmap := TBitmap.Create(round(image1.Width), round(image1.height));
MyBitmap.Assign(Image1.Bitmap);
with MyBitmap.Canvas do begin
BeginScene;
// einen Rahmen ums Bild zeichnen
Stroke.Kind := TBrushKind.Solid;
Stroke.Color := TAlphaColorRec.Coral;
StrokeThickness := 4;
rectFrame.Create( 0, 0, Image1.width , image1.height);
DrawRect(RectFrame, 20, 20, AllCorners, 1.0);
EndScene;
end;
MyBitmap.SaveToFile('c:\temp\BildErgebnis.png');
mmo.lines.add('Image1.width: '+ FloatToStr(Image1.width));
mmo.lines.add('Image1.Height:'+ FloatToStr(Image1.height));
mmo.lines.add('MyBitmap.width: '+ IntToStr(MyBitmap.width));
mmo.lines.add('MyBitmap.Height:'+ IntToStr(MyBitmap.height));
MyBitmap.Free;
end;
Das sieht man auch an der Ausgabe im Memo:
Delphi-Quellcode:
Image1.width: 837
Image1.Height:420
MyBitmap.width: 1000
MyBitmap.Height:667
An der Umwandlung von Image.width ( single) nach bitmap.width (integer) kanns ja wohl nicht liegen.
Muss man da noch irgendwas skalieren?
Danke schon mal fürs lesen.