gpt4 book ai didi

delphi - 如何在 TImage 中平铺图像?

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

如何在 Delphi 中平铺 TImage 中的图像?

为什么我需要它:我可以创建一个并将图像存储在那里,而不是在运行时创建更多 TImage,因为我知道它将“适合”直到达到 TImage 的高度和宽度。

请提出任何想法来做到这一点。

谢谢!

编辑:请注意,我不是要求拉伸(stretch)图像,而是通过重复图像来填充 Canvas 。

最佳答案

假设您的图像是位图并加载到 TImage 中,您可以使用以下内容

procedure TmyForm.Button1Click(Sender: TObject);
var mybmp:TBitmap;
begin
mybmp:= TBitmap.Create();
try
mybmp.Assign(Image1.Picture.Bitmap);

Image1.Picture.Bitmap.SetSize(Image1.Width,Image1.Height);
Image1.Canvas.Brush.Bitmap := mybmp;
Image1.Canvas.FillRect(Image1.BoundsRect);

mybmp.FreeImage;
finally
FreeandNil(mybmp)
end;
end;

一些注释:

如果您在给图像添加标题后保存图像,您将保存带标题的版本而不是原始版本。

Image1.Canvas 和 Image1.Picture.Bitmap.Canvas 是相同的,这就是为什么您需要在 Canvas 上绘画之前调整位图的大小。

如果您尝试将 TImage 中的位图分配给画笔,而不先将其分配给另一个位图对象,就像这样 Image1.Canvas.Brush.Bitmap := Image1.Picture.Bitmap 你会得到一个异常“存储空间不足”。

关于delphi - 如何在 TImage 中平铺图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1268410/

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