如何确定作为原始字节的图像是否已损坏。是否有任何开源库可以处理 C# 中多种格式的此问题?
Thanks
尝试从该文件创建 GDI+ 位图。如果创建 Bitmap 对象失败,则您可以假设图像已损坏。 GDI+ 支持多种文件格式 http://msdn.microsoft.com/en-us/library/ms536393%28v=vs.85%29.aspx: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
,但在进行切换之前我会先尝试一下。
EDIT
如果你有一个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;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)