我正在从文件加载图像,并且我想知道如何在从文件中完全读取图像之前对其进行验证。
string filePath = "image.jpg"; Image newImage = Image.FromFile(filePath);
当image.jpg并不是真正的jpg时,就会出现问题。例如,如果我创建一个空的文本文件并将其重命名为image.jpg,则在加载image.jpg时将引发OutOfMemory异常。
我正在寻找一个函数,该函数将根据给定的图像流或文件路径来验证图像。
示例函数原型
bool IsValidImage(string fileName); bool IsValidImage(Stream imageStream);
JPEG没有正式的标头定义,但是它们确实有少量可使用的元数据。
在那之后还有其他几件事,但是那并不重要。
您可以使用二进制流打开文件,并读取此初始数据,并确保OffSet 0为0,OffSet 6为1,2或3。
这至少会给您带来更高的精度。
或者,您可以捕获异常并继续前进,但是我认为您想要挑战:)