我正在开发一个允许用户上传图片的网站。我希望能够接受 BMP、GIF、JPEG 和 PNG(可能还有一两种其他格式,如 TIFF)。我正在使用 Apache Commons FileUpload 库来实现这一点。为了使所有图像最终都采用相同的格式,我想将所有图像格式转换为 JPEG 格式。
什么是最简单的方法可以适用于上述所有图像格式?
我努力了:
- ImageIO.read(),
javax.imageio.IIOException: Unexpected block type 0!
用于一些 GIF 文件和java.awt.color.CMMException: Invalid image format
JPEG 文件。 - 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");
}
图片: