从内存流中查找图像类型

时间:2014-05-27 15:18:30

标签: c# jpeg memorystream

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

2 个答案:

答案 0 :(得分:2)

结帐Image.RawFormat属性。从流中加载图像后,您可以执行以下操作:

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

答案 1 :(得分:0)

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

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

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