在 C# 中检查图像有效性
使用 Image.FromFile() 方法从文件中检索图像时,当提供的文件与指定的图像格式不匹配时,就会出现潜在的问题。例如,指定名称为“image.jpg”的空文本文件可能会在 Image.FromFile() 加载期间触发 OutOfMemory 异常。为了解决这个问题,需要一种机制来根据给定的流或文件路径验证图像。
流验证:
函数 IsValidImage( Stream imageStream) 使用流验证图像。要实现此目的:
文件路径验证:
与流验证类似,IsValidImage(string fileName) 可以使用文件路径实现。该方法类似于流验证,不同之处在于直接从文件而不是流中读取字节。
自定义图像格式检测:
对于高级场景,其中文件扩展名不可靠,可以实现自定义图像格式检测机制。其中一种方法涉及检查图像的字节:
public enum ImageFormat { bmp, jpeg, gif, tiff, png, unknown } public static ImageFormat GetImageFormat(byte[] bytes) { // Check bytes against image header signatures // ... return ImageFormat; }
通过使用此函数,可以在图像完全加载到内存之前对其进行验证,从而减轻 Image.FromFile() 期间潜在的异常正在加载。
以上是如何在加载 C# 图像文件之前验证它们以防止 OutOfMemoryExceptions?的详细内容。更多信息请关注PHP中文网其他相关文章!