使用ImageIO将文件后缀映射到内容类型

时间:2012-06-12 10:15:30

标签: java image javax.imageio

我整理了一些使用javax.imageio.ImageIO的代码。我有用户请求的文件后缀,例如jpg,我们转换保存的图像,然后以正确的格式将其渲染回用户。

现在我想将后缀映射到MIME类型。使用快速切换相对容易,但鉴于ImageIO同时具有

它必须知道后缀和MIME类型之间的映射,或者特定ImageWriter生成的MIME类型。因此,必须有一种方法可以从我即将使用的编写器中获取内容类型。但我没有在ImageWriter上看到任何返回内容类型的方法或属性,甚至没有足够的。

基本上我正在尝试完成以下代码块:

Iterator<ImageWriter> imageWriters = ImageIO.getImageWritersBySuffix(type);
ImageWriter imageWriter = imageWriters.hasNext() ? imageWriters.next() : null;
if (imageWriter != null) {
    contentType = imageWriter. ???
}

谢谢!蛮力方法我想是得到所有支持的MIME类型,然后迭代这些,直到我找到一个返回相同的ImageWriter作为get-by-suffix调用(如果确实很容易比较结果)但我是希望有一些比这更优雅的东西 - 我更喜欢转向那个。

1 个答案:

答案 0 :(得分:2)

试试这个:

String[] mimeTypes = imageWriter.getOriginatingProvider().getMIMETypes();