Один из перегруженных методов объекта Graphics GDI+ позволяет задать координаты точек куда и будет выведено, внутри ограничиваемого ими четырехугольника, изображение.
Три ограничивающие точки располагаются следующим образом:
1 2 3
Теперь пример:
uses GDIPAPI, GDIPOBJ, GDIPUTIL;
var
dp: array of TGPPointF; // массив координат угловых точек
img: TGpImage;
gpcanvas: TGPGraphics;
begin
img := TGPImage.Create('cat.bmp');
SetLength(dp, 3); // создаем массив
dp[0].X := 300.0; // и заполняем его
dp[0].Y := 120.0;
dp[1].X := 400.0;
dp[1].Y := 220.0;
dp[2].X := 300.0;
dp[2].Y := 230.0;
В событии PaintBox1.OnPaint:
gpcanvas := TGPGraphics.Create(PaintBox1.Canvas.Handle);
gpcanvas.DrawImage(img, PGPPointF(dp), 3);
gpcanvas.Free;

Вписать изображение в четырехугольник (параллелограмм)
