2017-10-11 5 views
0

enter image description heresur Firemonkey, Comment puis-je combiner des images?

Comment faire cela sur Delphi XE 10.1 avec FMX?

J'essaie d'insérer une petite image à un endroit désiré sur une grande image. https://forums.embarcadero.com/thread.jspa?messageID=867027 J'ai essayé d'utiliser un exemple dans cette question. Dans le premier exemple DrawBitmap Si vous définissez la valeur de coordonnées Rect pour qu'elle corresponde à la valeur de coordonnée souhaitée, la petite image sera coupée. Le deuxième exemple n'a pas de méthode appelée Draw dans FMX TCanvas. Je veux de l'aide. Je vous remercie.

Répondre

3

Le procédé DrawBitmap tire zone de bitmap mis à l'échelle décrite par le paramètre SrcRect dans la zone de toile décrit par le paramètre dstrect. Vous devez donc avoir utilisé des rectangles incorrects. Essayez ceci (il dessine 50% bitmap mis à l'échelle sur le canevas 8 pixels de gauche et du haut):

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;