Einzelnen Beitrag anzeigen

nikosophi

Registriert seit: 8. Mai 2013
Ort: Weilerswist
47 Beiträge
 
Delphi 11 Alexandria
 
#1

FMX: Image->Bitmap wird abgeschnitten

  Alt 2. Okt 2016, 20:09
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.
  Mit Zitat antworten Zitat