Попробуйте создать GDI + Bitmap из файла.Если создать объект 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
, но я бы сначала поэкспериментировал с этим перед переключением.
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;
}
}