c#自动裁剪图像

c#自动裁剪图像,c#,crop,C#,Crop,我有一个黑白系统.Drawing.Bitmap我需要自动裁剪它,使其大小与图像大小相同。此图像总是从左上角(0,0)位置开始,但我不确定需要多少高度和宽度。如果有什么方法可以自动裁剪到合适的尺寸?以下是我使用的代码: // Figure out the final size int maxX = 0; int maxY = 0; for (int x = 0; x < bitmap.Width; x++) { for (int y =

我有一个黑白
系统.Drawing.Bitmap
我需要自动裁剪它,使其大小与图像大小相同。此图像总是从左上角(0,0)位置开始,但我不确定需要多少高度和宽度。如果有什么方法可以自动裁剪到合适的尺寸?

以下是我使用的代码:

    // Figure out the final size
    int maxX = 0;
    int maxY = 0;
    for (int x = 0; x < bitmap.Width; x++)
    {
        for (int y = 0; y < bitmap.Height; y++)
        {
            System.Drawing.Color c = bitmap.GetPixel(x, y);
            System.Drawing.Color w = System.Drawing.Color.White;
            if (c.R != w.R || c.G != w.G || c.B != w.B)
            {
                if (x > maxX)
                    maxX = x;
                if (y > maxY)
                    maxY = y;
            }
        }
    }
    maxX += 2;
//计算出最终的尺寸
int max=0;
int-maxY=0;
用于(int x=0;xmaxX)
maxX=x;
如果(y>maxY)
maxY=y;
}
}
}
maxX+=2;

<空白区内的图像包含什么?白色或透明像素?嗯。。。我不知道它是否非常有效,但我会搜索最后一行全白色的像素(或者从最后一行开始搜索),然后得到它的编号。专栏也是一样。我不知道你们的图片上有什么数据,但感觉你们可以通过对分你们的图片来加快速度,检查任何非白色的值来告诉你们对分哪一半。。。等等你也许可以在最坏的情况下达到O((logh)*(logw))而不是O(w*h)。我想这对封闭的形状来说是可行的,但对于只包含两个非空白像素的图像来说可能不行。哦,好吧,根据图像,值得考虑。