【问题标题】:Convert uploaded images from various formats to JPEG将上传的图像从各种格式转换为 JPEG
【发布时间】:2011-02-02 02:33:26
【问题描述】:

我正在开发一个允许用户上传图片的网站。我希望能够接受 BMP、GIF、JPEG 和 PNG(可能还有一两种其他格式,例如 TIFF)。我正在使用 Apache Commons FileUpload 库来实现这一点。为了使所有图像最终都采用相同的格式,我想将所有图像格式转换为 JPEG 格式。

适用于上述所有图像格式的最简单方法是什么?

我试过了:

  • ImageIO.read(),它为某些 GIF 文件提供javax.imageio.IIOException: Unexpected block type 0!,为 JPEG 文件提供java.awt.color.CMMException: Invalid image format
  • JAI,它为 GIF 文件提供了巨大的错误跟踪。

编辑:有关 JAI 方法的信息:

堆栈跟踪:

错误:一个工厂因操作“gif”而失败

发生在:javax.media.jai.ThreadSafeOperationRegistry

紧随其后的是数百行踪迹。

代码:

public static void convertToJPG(String originalFile, String newFile) throws Exception {
    RenderedImage image = JAI.create("fileload", originalFile);
    JAI.create("filestore", image, newFile, "JPEG");
}

图片:

【问题讨论】:

  • JAI 可以处理 GIF 文件的解码,您能分享一些 GIF 文件或向我们展示您的一些代码以及至少错误跟踪的顶部吗?

标签: java image-processing jai


【解决方案1】:

看看ImageMagick,尤其是转换命令。

【讨论】:

  • 我看过了,但是用 Java 运行看起来相当复杂,而且我真的看不到太多文档或示例。
  • 只需获取一个运行时,然后执行命令和参数。如果您将其封装在一个小类中以抽象细节,那么您可以在以后替换实际的转换器。
  • 我不熟悉如何做到这一点,你能提供一个短代码sn-p作为例子吗?
猜你喜欢
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 2013-09-14
  • 2019-01-24
  • 1970-01-01
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多