我整理了一些使用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类型,然后迭代这些,直到我找到一个返回相同的ImageWriter作为get-by-suffix调用(如果确实很容易比较结果)但我是希望有一些比这更优雅的东西 - 我更喜欢转向那个。
答案 0 :(得分:2)
试试这个:
String[] mimeTypes = imageWriter.getOriginatingProvider().getMIMETypes();