如何确定我作为原始字节的图像是否已损坏.是否有任何开源库可以在C#中处理多种格式的此问题?
谢谢
解决方法
尝试从文件创建GDI位图.如果创建Bitmap对象失败,则可以假设图像已损坏. GDI支持多种
file formats: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; } }