如何从System.Drawing.Imaging.ImageFormat得到的contentType [英] How to get contentType from System.Drawing.Imaging.ImageFormat

查看:1003
本文介绍了如何从System.Drawing.Imaging.ImageFormat得到的contentType的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有Bitmap并且有RawFormat属性。

If I have Bitmap and it has RawFormat property.

如何从这个ImageFormat对象获取内容类型?

How can I get Content Type from this ImageFormat object?

Bitmap image = new Bitmap(stream);
ImageFormat imageFormat = image.RawFormat;
//string contentType = ?


推荐答案

我相信我想出了一个简单的解决方案工作伟大的图像。这使用扩展方法和Linq,所以它将工作在.net框架3.5+。下面是代码和单元测试:

I believe I've come up with a simple solution that works great for images. This uses extension methods and Linq, so it will work on .net framework 3.5+. Here's the code and unit test:

public static string GetMimeType(this Image image)
{
    return image.RawFormat.GetMimeType();
}

public static string GetMimeType(this ImageFormat imageFormat)
{
    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
    return codecs.First(codec => codec.FormatID == imageFormat.Guid).MimeType;
}

[TestMethod]
public void can_get_correct_mime_type()
{
    Assert.AreEqual("image/jpeg", ImageFormat.Jpeg.GetMimeType());
    Assert.AreEqual("image/gif", ImageFormat.Gif.GetMimeType());
    Assert.AreEqual("image/png", ImageFormat.Png.GetMimeType());
}

这篇关于如何从System.Drawing.Imaging.ImageFormat得到的contentType的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆