2017-10-11 1 views
0

enter image description hereauf Firemonkey, Wie kann ich Bilder kombinieren?

Wie geht das mit Delphi XE 10.1 mit FMX?

Ich versuche, ein kleines Bild an einer gewünschten Stelle auf einem großen Bild einzufügen. https://forums.embarcadero.com/thread.jspa?messageID=867027 Ich habe versucht, ein Beispiel in dieser Frage zu verwenden. Im ersten DrawBitmap-Beispiel Wenn Sie den Rect-Koordinatenwert auf den gewünschten Koordinatenwert einstellen, wird das kleine Bild abgeschnitten. Das zweite Beispiel hat keine Methode namens Draw in FMX TCanvas. Ich möchte Hilfe bekommen. Vielen Dank.

Antwort

3

DrawBitmap Die Methode zeichnet skalierten Bitmap-Bereich durch den SrcRect beschriebenen Parameter in den Bereich der Leinwand durch DstRect Parameter beschrieben. Sie müssen also falsche Bereichsrechtecke verwendet haben. Versuchen Sie es (es wird 50% skalierte Bitmap auf die Leinwand gezeichnet, 8 Pixel von links und oben):

var 
    Bitmap: TBitmap; 
    SrcRect: TRectF; 
    DstRect: TRectF; 
begin 
    Bitmap := TBitmap.CreateFromFile('C:\MyImage.bmp'); 
    try 
    SrcRect := Bitmap.BoundsF; 

    DstRect := SrcRect; 
    DstRect.Width := DstRect.Width/2; 
    DstRect.Height := DstRect.Height/2; 
    DstRect.Offset(8, 8); 

    Image1.Bitmap.Canvas.BeginScene; 
    Image1.Bitmap.Canvas.DrawBitmap(Bitmap, SrcRect, DstRect, 100); 
    Image1.Bitmap.Canvas.EndScene; 
    finally 
    Bitmap.Free; 
    end; 
end; 
Verwandte Themen