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

bob*_*lan 7 c# image pixel

如何将一张图像分割成多个子图像?比如,我是否必须读取像素并将其转换为图像?

例如:

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

如果是这样,我将把像素存储到哪里?更具体地说,它会被保存为字节、图像等数组吗?

cas*_*las 5

您可以尝试以下代码示例(取自/sf/answers/288273681/);

 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));
        }
    }
Run Code Online (Sandbox Code Playgroud)

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