Я занимаюсь разработкой веб-сайта, который позволяет пользователю загружать изображения. Я хотел бы иметь возможность принимать форматы 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");
}
Изображение:
![An image which doesn't work.](https://i.stack.imgur.com/mImha.gif)