Mic*_*tum 5 .net c# asp.net graphics gdi+
我有一些JPG图像.其中一些可能在一侧或多侧有黑色边框,我想将它们删除.黑色边框可能不会围绕实际图像 - 有些可能只有底部的边框(实际图像位于顶部),而有些可能居中(这意味着两边是黑色边框,但没有连接).更糟糕的是,图像是JPG Compressed,所以它们可能不再是0,0,0 black.
在一个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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2901 次 |
| 最近记录: |