如何在C#中重复图像

SAK*_*SAK 13 c# image-manipulation image tile

我有一个具有特定模式的图像.如何使用GDI在另一个图像中重复它?
有没有办法在GDI中做到这一点?

cHa*_*Hao 24

在C#中,您可以创建一个TextureBrush,它可以在您使用它的任何地方平铺图像,然后用它填充一个区域.像这样的东西(一个填满整个图像的例子)......

// Use `using` blocks for GDI objects you create, so they'll be released
// quickly when you're done with them.
using (TextureBrush brush = new TextureBrush(yourImage, WrapMode.Tile))
using (Graphics g = Graphics.FromImage(destImage))
{
    // Do your painting in here
    g.FillRectangle(brush, 0, 0, destImage.Width, destImage.Height);
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您想要对图像的平铺方式进行一些控制,那么您将需要了解一些有关变换的知识.

我差点忘了(实际上我确实忘了一点):你需要导入System.Drawing(for GraphicsTextureBrush)和System.Drawing.Drawing2D(for WrapMode)以使上面的代码按原样工作.