Windows Forms C#,图像编辑
Windows Forms C#, Image editing
我目前正在开发一个应用程序,用于自动生成图块集。
其实我的问题很简单。
我在将文件分成多个图块时遇到了问题。
是否可以从 PictureBox 中创建单独的图像,或者是否有另一种更有效的方法?
我想将图形切割成图块,重新排列它们。
您可以相对轻松地从 PictureBox
获取子图像,因为该图像只是 bitmap
。您可以使用位图 类 Clone()
方法,它采用 Rectangle
和 PixelFormat
.
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 图像设置为编辑后的图像。
我目前正在开发一个应用程序,用于自动生成图块集。 其实我的问题很简单。 我在将文件分成多个图块时遇到了问题。 是否可以从 PictureBox 中创建单独的图像,或者是否有另一种更有效的方法? 我想将图形切割成图块,重新排列它们。
您可以相对轻松地从 PictureBox
获取子图像,因为该图像只是 bitmap
。您可以使用位图 类 Clone()
方法,它采用 Rectangle
和 PixelFormat
.
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 图像设置为编辑后的图像。