【问题标题】:Mapping file suffix to content type with ImageIO使用 ImageIO 将文件后缀映射到内容类型
【发布时间】:2012-06-12 10:15:29
【问题描述】:

我正在整理一些使用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 类型,然后遍历这些类型,直到找到一个返回与 get-by-suffix 调用相同的 ImageWriter 的类型(如果确实很容易比较结果),但我是希望有比这更优雅的东西 - 我更喜欢切换到那个。

【问题讨论】:

    标签: java image javax.imageio


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • 太棒了,谢谢!我确实查看了 ImageWriterSPI javadoc,但在继承的方法中没有发现:-/
    猜你喜欢
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 2012-05-20
    • 2010-12-28
    • 2017-07-04
    相关资源
    最近更新 更多