如何确定我作为原始字节的图像是否已损坏。是否有任何开源库可以在C#中处理多种格式的这个问题?
由于
答案 0 :(得分:12)
尝试从文件中创建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;
}
}
答案 1 :(得分:0)