【发布时间】:2011-11-02 11:48:18
【问题描述】:
如果我有 Bitmap 并且它有 RawFormat 属性。
如何从这个 ImageFormat 对象中获取内容类型?
Bitmap image = new Bitmap(stream);
ImageFormat imageFormat = image.RawFormat;
//string contentType = ?
【问题讨论】:
标签: c# image content-type
如果我有 Bitmap 并且它有 RawFormat 属性。
如何从这个 ImageFormat 对象中获取内容类型?
Bitmap image = new Bitmap(stream);
ImageFormat imageFormat = image.RawFormat;
//string contentType = ?
【问题讨论】:
标签: c# image content-type
如果您想根据文件名(或扩展名)确定 MIME 类型,这里有一个使用注册表的链接:Get MimeType from a File Name
【讨论】:
我相信我已经想出了一个非常适合图像的简单解决方案。这使用扩展方法和 Linq,因此它可以在 .net 框架 3.5+ 上运行。这是代码和单元测试:
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());
}
【讨论】: