2015-12-28 65 views
3

如何将图像分成多个子图像?像,我必须读取像素并将其转换为图像吗?如何在C#中将图片分割成更小的片段?

例如:

如果图像的尺寸为100像素(宽度)和180像素(高度),我想,比方说,把它分解为4×4,我会阅读的宽度和第一第一25像素45像素的高度,然后只是正确地增加它?

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

+0

[Image splitting into 9 pieces]的可能重复(http://stackoverflow.com/questions/4118150/image-splitting-into-9-pieces) – evelikov92

回答

2

您可以尝试下列代码示例(取自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

请在将来为您的资源添加属性。不这样做被视为剽窃。请参阅http://stackoverflow.com/help/referencing – Matt

-1

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