我有一些JPG图片。其中一些可能在一个或多个侧面带有黑色边框,我想将其删除。黑色边框可能不会围绕实际图像-一些边框可能仅在底部(实际图像位于顶部),而某些边框可能居中(这意味着黑色边框在两侧,但未连接)。更糟糕的是,图像已被JPG压缩,因此它们可能不再完全是0、0、0黑色。
在Paint程序中,我将“简单地”使用具有低公差的Magic Wand工具,但是我需要在ASP.net上的C#中使用它,而且我不知道这样做的最佳方法是什么。
我应该先扫描每一行,然后再扫描每一列(两个嵌套的for循环)以查找黑色区域吗?在性能和CPU负载方面,听起来有些愚蠢。还是GDI +已经内置了一些魔术棒工具?
图像不是很大(最大474x474像素)并在以后缓存,但是我需要保持服务器负载尽可能低。
有什么提示是最愚蠢的做法吗?
最佳答案
似乎对于每个边缘,您都可以执行以下操作:
for each edge:
for (i = 0; ; i++) {
compute average pixel value along edge row/column + i
if (average value > threshold)
break;
}
crop image
关于c# - 去除图像周围的黑色边框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1266672/