如何将图像分成多个子图像?像,我必须读取像素并将其转换为图像吗?如何在C#中将图片分割成更小的片段?
例如:
如果图像的尺寸为100像素(宽度)和180像素(高度),我想,比方说,把它分解为4×4,我会阅读的宽度和第一第一25像素45像素的高度,然后只是正确地增加它?
如果是这样,我会将像素存储到什么位置?更具体地说,它会被保存为一个字节,图像等数组?
如何将图像分成多个子图像?像,我必须读取像素并将其转换为图像吗?如何在C#中将图片分割成更小的片段?
例如:
如果图像的尺寸为100像素(宽度)和180像素(高度),我想,比方说,把它分解为4×4,我会阅读的宽度和第一第一25像素45像素的高度,然后只是正确地增加它?
如果是这样,我会将像素存储到什么位置?更具体地说,它会被保存为一个字节,图像等数组?
您可以尝试下列代码示例(取自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一个例子。
请在将来为您的资源添加属性。不这样做被视为剽窃。请参阅http://stackoverflow.com/help/referencing – Matt
[Image splitting into 9 pieces]的可能重复(http://stackoverflow.com/questions/4118150/image-splitting-into-9-pieces) – evelikov92