gpt4 book ai didi

image - 如何在Firemonkey中拉伸(stretch)图像?

转载 作者:行者123 更新时间:2023-12-03 15:47:37 27 4
gpt4 key购买 nike

我想将图像大小调整为预定义的 64 * 64 位图,无论其当前尺寸和纵横比如何。我尝试了 Bitmap.ReSize 但保持了纵横比。我尝试了 TImage 并将 WrapMode 设置为 iwStretch。这在一定程度上有效,因为它确实根据我的需要重新缩放了图像,但我找不到从 TImage 中获取该图像的方法。 TImageBitmap 属性仍然包含原始位图。

有人知道如何从屏幕上显示的 TImage 中获取图像吗?或者甚至更好:向我指出一个可以进行这种调整大小和拉伸(stretch)的函数?如果有的话,我已经错过了。

感谢您的宝贵时间。

最佳答案

要在 Fmx 中拉伸(stretch)图像,您不需要使用 TImage。我知道您并不是真的想使用 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;

您让bmpB.Canvas绘制bmpA位图,并根据srctrg<同时调整图像大小 矩形。

关于image - 如何在Firemonkey中拉伸(stretch)图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46398851/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com