Windows Forms C#,图像编辑

Windows Forms C#, Image editing

我目前正在开发一个应用程序,用于自动生成图块集。 其实我的问题很简单。 我在将文件分成多个图块时遇到了问题。 是否可以从 PictureBox 中创建单独的图像,或者是否有另一种更有效的方法? 我想将图形切割成图块,重新排列它们。

您可以相对轻松地从 PictureBox 获取子图像,因为该图像只是 bitmap。您可以使用位图 类 Clone() 方法,它采用 RectanglePixelFormat.

Bitmap image = pictureBox.Image;
Bitmap subImage = image.Clone(new Rect(0,0,64,64), image.PixelFormat);

本例中的子图像将从图像中的位置 (0,0) 开始,大小为 64x64

为了重新排列您的图块,您可以像这样将它们打印回 PictureBox:

Graphics g = Graphics.FromImage(image);
g.drawImage(subImage, 64, 64);
pictureBox.Image = image;

这会将 subImage 绘制到我们之前从图片框 image 抓取的 (64,64) 处的图像中,然后将 PictureBox 图像设置为编辑后的图像。