2

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

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

它必须知道后缀和 MIME 类型之间的映射,或者特定的ImageWriter. 因此,必须有一种方法可以从我将要使用的作者那里获取内容类型。但我在 ImageWriter 上看不到任何返回内容类型的方法或属性,甚至是足够的。

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

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

谢谢!我猜的蛮力方法是获取所有支持的 MIME 类型,然后遍历这些类型,直到找到一个返回与 get-by-suffix 调用相同的 ImageWriter 的类型(如果确实很容易比较结果),但我是希望有比这更优雅的东西 - 我更喜欢切换到那个。

4

1 回答 1

2

试试这个:

String[] mimeTypes = imageWriter.getOriginatingProvider().getMIMETypes();
于 2012-06-12T10:43:58.610 回答