首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在TImage中平铺图像?

如何在TImage中平铺图像?
EN

Stack Overflow用户
提问于 2009-08-12 20:04:11
回答 5查看 5.8K关注 0票数 3

如何在德尔菲的TImage中平铺图像?

我需要它的原因:不需要在运行时创建更多的TImages,我可以创建一个,并将我的图像存储在那里,知道它将‘适合’,直到它达到TImage的高度和宽度。

请提出任何想法来做这个。

谢谢!

编辑:请注意,我不是要求散布图像,而是通过重复图像填充画布。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-08-12 22:03:25

下面是我所使用的函数,使用现有的TImage组件并将其平铺到目标画布上:

代码语言:javascript
运行
复制
procedure TileImage(const Source:tImage;
    Target: TCanvas;
    TargetHeight,TargetWidth:integer);
// Tiles the source image over the given target canvas
var
  X, Y: Integer;
  dX, dY: Integer;
begin
  dX := Source.Width;
  dY := Source.Height;
  Y := 0;
  while Y < TargetHeight do
    begin
      X := 0;
      while X < TargetWidth do
        begin
          Target.Draw(X, Y, Source.Picture.graphic);
          Inc(X, dX);
        end;
      Inc(Y, dY);
    end;
end;

因为tLabel公开了画布,所以可以使用如下技巧:

代码语言:javascript
运行
复制
TileImage(Image1,Label1.Canvas,Label1.Height,Label1.Width);
票数 6
EN

Stack Overflow用户

发布于 2009-08-13 09:11:09

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

代码语言:javascript
运行
复制
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;

一些注释:

如果你保存图片后,它的标题,你将保存标题版本,而不是原来。

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

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

票数 7
EN

Stack Overflow用户

发布于 2009-08-12 20:29:18

您可以将canvas.brush.bitmap :=设置为瓷砖的图像。然后canvas.fillrect(canvas.cliprect)用选定的瓷砖图像平铺整个画布。我已经很久没有这样做了,我无法确定这是否真的是现在在Delphi中所做的,但我很确定这就是你想要的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1268410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档