如何在C#中将图像分割成较小的部分?

6
如何将一张图片分割成多个子图像?我需要读取像素并将其转换为图像吗?
例如:
如果一张图片的尺寸是100px(宽)和180px(高),我想要将它分割成一个4x4的网格,那么我应该读取宽度的前25px和高度的前45px,然后正确地递增吗?
如果是这样,我应该将像素存储在哪里呢?更具体地说,它应该保存为字节数组、图像等吗?

可能是 把图片分成九块 的重复问题。 - evelikov92
2个回答

4
您可以尝试以下代码示例(来自https://dev59.com/aVHTa4cB1Zd3GeqPTrLF#4118195/):
 for (int i = 0; i < 4; i++)
    {
        for (int y = 0; y < 4; y++)
        {
            Rectangle r = new Rectangle(i*(pictureBox1.Image.Width / 4), 
                                        y*(pictureBox1.Image.Height / 4), 
                                        pictureBox1.Image.Width / 4, 
                                        pictureBox1.Image.Height / 4);

            g.DrawRectangle(pen,r );

            list.Add(cropImage(pictureBox1.Image, r));
        }
    }

另一个选择是使用BitMap.Clone,您可以在以下链接中找到示例:链接

1
请在以后引用您的来源。不这样做将被视为剽窃行为。请参阅http://stackoverflow.com/help/referencing。 - Matt

1
使用Bitmap类来保存图像,并使用其Clone方法来裁剪任意大小的矩形。作为Bitmap,它带有多个便利方法,例如Save,其中重载将保存到流中,另一个则允许您将其保存到文件中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接