【发布时间】:2012-06-12 10:15:29
【问题描述】:
我正在整理一些使用javax.imageio.ImageIO 的代码。我有用户请求的文件后缀,例如jpg,然后我们转换保存的图像,然后以正确的格式将其呈现给用户。
现在我想将后缀映射到 MIME 类型。使用快速切换相对容易做到这一点,但考虑到 ImageIO 两者都有
-
static Iterator<ImageWriter>getImageWritersBySuffix(String fileSuffix) -
static Iterator<ImageWriter>getImageWritersByMIMEType(String MIMEType)
它必须知道后缀和 MIME 类型之间的映射,或者由特定的ImageWriter 生成的 MIME 类型。因此,必须有一种方法可以从我将要使用的作者那里获取内容类型。但我在 ImageWriter 上看不到任何返回内容类型的方法或属性,甚至是足够的。
基本上我正在尝试完成以下代码块:
Iterator<ImageWriter> imageWriters = ImageIO.getImageWritersBySuffix(type);
ImageWriter imageWriter = imageWriters.hasNext() ? imageWriters.next() : null;
if (imageWriter != null) {
contentType = imageWriter. ???
}
谢谢!我猜的蛮力方法是获取所有支持的 MIME 类型,然后遍历这些类型,直到找到一个返回与 get-by-suffix 调用相同的 ImageWriter 的类型(如果确实很容易比较结果),但我是希望有比这更优雅的东西 - 我更喜欢切换到那个。
【问题讨论】:
标签: java image javax.imageio