读取图像并确定其损坏的C#

如何确定我作为原始字节的图像是否已损坏。 是否有任何开源库可以在C#中处理多种格式的此问题?

谢谢

尝试从文件中创建GDI +位图。 如果创建Bitmap对象失败,那么您可以假设图像已损坏。 GDI +支持多种文件格式 :BMP,GIF,JPEG,Exif,PNG,TIFF。

像这个函数应该工作:

public bool IsValidGDIPlusImage(string filename) { try { using (var bmp = new Bitmap(filename)) { } return true; } catch(Exception ex) { return false; } } 

您可以将Exception限制为ArgumentException ,但我会在进行切换之前先尝试一下。

编辑
如果你有一个byte[] ,那么这应该工作:

 public bool IsValidGDIPlusImage(byte[] imageData) { try { using (var ms = new MemoryStream(imageData)) { using (var bmp = new Bitmap(ms)) { } } return true; } catch (Exception ex) { return false; } } 

您可以查看这些链接以获取主意。 第一个在这里; validation图像

第二个就在这里; 如何检查损坏的TIFF图像

抱歉,我不知道任何外部库。