我正在加载图像文件硬盘的二进制字节,并将其加载到位图对象中.如何从位图对象中找到图像类型[JPEG、PNG、BMP等]?

看起来微不足道.但是,我想不出来!

有没有其他办法?

感谢您的回复.

UPDATED CORRECT SOLUTION:

@谢谢你的正确回复!

实现这一点的示例代码.

using (MemoryStream imageMemStream = new MemoryStream(fileData))
{
    using (Bitmap bitmap = new Bitmap(imageMemStream))
    {
        ImageFormat imageFormat = bitmap.RawFormat;
        if (bitmap.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
            //It's a JPEG;
        else if (bitmap.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
            //It's a PNG;
    }
}

推荐答案

如果您想知道图像的格式,可以加载具有Image类的文件,并判断其RawFormat属性:

using(Image img = Image.FromFile(@"C:\path\to\img.jpg"))
{
    if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
    {
      // ...
    }
}

.net相关问答推荐

如何在dotnet中使用OpenTelemetry Prometheus导出器导出多个版本的度量?

WinForm Task.Wait :为什么它会阻塞 UI?

如何运行大量阻塞/同步 I/O 操作

"投掷;" 是什么意思?靠自己做什么?

Silverlight 与 Flex

如何从 .net 中的数组类型获取数组项类型

[DllImport("QCall")] 是什么?

修剪数组中的所有字符串

测试没有预期的异常

何时何地使用 GetType() 或 typeof()?

从 C# 中的字符串中删除最后一个字符.优雅的方式?

更改 SqlConnection 超时

Guid.Parse() 或 new Guid() - 有什么区别?

例外:不支持 URI 格式

在 .Net 中调用 Web 服务时绕过无效的 SSL 证书错误

DateTime.Compare 如何判断日期是否小于 30 天?

任何人都知道缺少枚举通用约束的好方法吗?

通过继承扩展枚举

如何修改 KeyValuePair 值?

没有科学记数法的双精度字符串转换