2011-02-02 207 views
4

我正在开发一个网站,允许用户上传图像。我希望能够接受BMP,GIF,JPEG和PNG(也许还有一两个像TIFF)格式。我正在使用Apache Commons FileUpload库来实现此目的。为了使所有图像以相同的格式结束,我想将所有图像格式转换为JPEG格式。将从各种格式上传的图像转换为JPEG

什么是最简单的方法来做到这一点将工作将所有上述图像格式?

我曾尝试:

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

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

堆栈跟踪:

Error: One factory fails for the operation "gif"

Occurs in: 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"); 
} 

图片:

An image which doesn't work.

+0

JAI可以处理GIF文件的解码,您可以共享一些GIF文件或向我们展示您的一些代码,并且至少可以显示错误跟踪的顶部? – 2011-02-02 02:41:31

回答

4

ImageMagick看看,和转换命令,尤其如此。

+0

我已经看过了,但使用Java运行看起来相当复杂,而且我看不到太多的文档或示例。 – DanielGibbs 2011-02-02 03:27:10

相关问题