如何在C#中将图像分割成更小的片段?

时间:2015-12-28 23:36:34

标签: c# image pixels

如何将图像分割成多个子图像?比如,我是否必须以某种方式读取像素并将其转换为图像?

例如:

如果图像的尺寸是100px(宽度)和180px(高度)并且我想,比如将它分割为4x4,我会读取宽度的前25px和前面的45px高度,然后只是正确增加它?

如果是这样,我会将像素存储到什么位置?更具体地说,它会被保存为字节,图像等数组吗?

2 个答案:

答案 0 :(得分:3)

您可以尝试以下代码示例(取自https://stackoverflow.com/a/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,您可以在以下link中找到一个示例。

答案 1 :(得分:-1)

使用Bitmap类来保存图像及其Clone方法,以剪切任意大小的矩形。作为Bitmap,它带有一些方便的方法,例如Save,这个重载会保存到一个流,另一个允许你将它保存到文件中。