从内存流中查找映像类型



我正在编写一些代码来将存储在数据库中的一些图像转换为JPEG。我需要检查图像是否为JPEG,并且我所拥有的是我放入MemoryStreambyte[]。然后,当前的代码将其插入Bitmap,这不会告诉我关于图像的任何信息。

检查Image.RawFormat属性。一旦你从流中加载图像,你可以这样做:

if (ImageFormat.Jpeg.Equals(image.RawFormat))
{
    // Image is JPEG
}

您可以检查前几个字节。大多数(但不是全部)JPEG文件以字节序列FF D8 FF开头。如果你需要确定,你需要做更多的事情。

我在15年前写了一个VB类来做这个。我仍然能在网上找到它的副本。https://code.google.com/p/vbgore/source/browse/trunk/Code/GrhDatMaker/CImageInfo.cls?spec=svn45& r = 45

很容易读懂。这应该比加载到Image类更快。

最新更新