我有大约 300,000 张图像,我需要浏览这些图像以找出损坏的图像。通过腐败,我必须解释问题所在:
一些图像具有显示此问题的图像的特定部分。我不知道该怎么称呼它,因此也可以找到解决方案。
我同意 Mitch 的评论,即这是一个需求描述,因为我不认为这是一个已知问题,而且我以前也从未见过它。您可能必须自己找到一种方法来检测这些图像。
(它不像图片中的红眼睛,你可以拿起一个工具立即修复它)。
您可以从使用构造函数创建一个Bitmap
对象开始Bitmap(String)
,该构造函数接受文件的路径。
您可以读取Bitmap.GetPixel(Int32, Int32)
用于检测这些图像的像素(不过,您将不得不想出某种算法来做到这一点。也许读取底部的行,看看它是否仅包含图像中的两种颜色(那个棕色和黄色)编辑:我刚刚用缩放查看了图像,它可能不会像那样简单,因为图像有抗锯齿。但是你可以检查大部分像素是否都在这些颜色,这应该工作)。
边注:
现在,如果您想实际编辑它们(例如,如果您将图像的其余部分放在不同的文件中),您可以Graphics
使用静态方法创建一个对象Graphics.FromImage(Image)
。
警告:Graphics
物品是一次性的。不要忘记在保存文件或刚刚修改完图形后处理它们。
在这个问题中有检测损坏图像的代码
真正的问题是这些图像是如何损坏的?如果存储它们的机器上有故障磁盘或其他硬件,则也需要解决。