【问题标题】:apache commons imaging writing image errorapache commons 成像写入图像错误
【发布时间】:2017-03-13 04:54:00
【问题描述】:

以下是微软示例图片 (tulips.jpg) 图像出错的示例代码

bufferedImage = Imaging.getBufferedImage(new file("Tulips.jpg"));

File imageFile = new File("outputfile.jpg");
final Map<String, Object> optionalParams = new HashMap<String, Object>();
Imaging.writeImage(bufferedImage, imageFile, ImageFormats.JPEG, optionalParams);

此代码给出“无法写入此图像格式(Jpeg-Custom)”。任何指针都会有很大帮助。我已经搜索了 stackoverflow,谷歌 - 到目前为止没有帮助。

当我阅读文档时,它指出如果 bufferedImage.getType()== TYPE_UNKNOWN,它会给出此消息,但不知道它为什么给出 UNKNOWN。

非常感谢您的帮助。

【问题讨论】:

    标签: java apache jpeg imaging


    【解决方案1】:

    Apache Commons Imaging 不支持写入 JPEG 文件。您可以在此处查看支持的格式信息:http://commons.apache.org/proper/commons-imaging/formatsupport.html(甚至不完全支持 JPEG 读取)。但是写入支持的其他一些格式(例如,您可以在 writeImage 函数调用中将图像格式更改为 PNG,它会起作用)。

    此外,Apache Commons Imaging 尚未发布,因此我不建议在关键代码中使用它。

    作为替代方案,您可以查看 JDK javax.imageio.ImageIO 类(一些示例:https://docs.oracle.com/javase/tutorial/2d/images/saveimage.html)。

    您究竟想在代码中实现什么?

    【讨论】:

    • 感谢您的回答。我忽略了写专栏。我正在尝试读取 CMYK 图像并转换为 RGB。如果小于 300,还要读取 DPI,重新保存并设置为 300 dpi。我浏览了论坛,这一切都导致了 apache commons 映像 link [link] (stackoverflow.com/questions/3123574/…)。
    • @luckyfitness 我的TwelveMonkeys ImageIO 插件将允许ImageIO 读取CMYK JPEG 并将它们以RGB 格式写回。 DPI 可以通过标准元数据(IIOMetadata 类)进行控制。
    • haraldK - 谢谢。我检查了十二猴子 ImageIO,但最新版本说使用 JDK.1.8,我们使用的是 JDK1.6.x。所以不确定在 3.0.x 版本之后是否有任何修复。它还会告诉 dpi 是否需要将其重新保存为 300。
    • @luckyfitness 当前版本 (3.3.x) 需要 Java 7。如果您需要在 Java 6 上运行,那很不幸。某处有一个分支,它向后移植了一个在 Java 5 或 6 上运行的最新版本,但我不是那个分支的维护者。是的,正如我所说,DPI 可以通过标准的IIOMetadata 类进行检查和修改。 PS:在名称前添加 @ 以通知用户您的消息。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2020-12-16
    • 2018-09-13
    相关资源
    最近更新 更多