Arn*_*old 3 delphi image bitmap delphi-xe5
我想将图像调整为64*64的预定义位图,无论其当前尺寸和宽高比如何.我尝试Bitmap.ReSize但保持纵横比.我试过TImage并设置WrapMode为iwStretch.这在某种程度上起作用,因为它确实按照我想要的方式重新缩放图像,但我找不到一种方法来获取图像TImage.该Bitmap属性TImage仍包含原始位图.
有人知道如何从TImage屏幕上显示的图像中获取图像吗?或者甚至更好:指向一个能够进行这种调整和拉伸的功能?如果有,我错过了.
谢谢你的时间.
要拉伸图像,Fmx您不需要使用TImage.我明白你真的不想用a TImage,解决方案如下:
var
bmpA, bmpB: TBitmap;
src, trg: TRectF;
begin
bmpA := nil;
bmpB := nil;
try
bmpA := TBitmap.Create;
bmpA.LoadFromFile('C:\tmp\Imgs\149265645.jpg');
bmpB:= TBitmap.Create;
bmpB.SetSize(64, 64);
src := RectF(0, 0, bmpA.Width, bmpA.Height);
trg := RectF(0, 0, 64, 64);
bmpB.Canvas.BeginScene;
bmpB.Canvas.DrawBitmap(bmpA, src, trg, 1);
bmpB.Canvas.EndScene;
bmpB.SaveToFile('C:\tmp\Imgs\149265645_take_two.bmp');
finally
bmpA.Free;
bmpB.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
你让bmpB.Canvas绘制bmpA位图,并根据同时调整图像大小src和trg矩形.