Конвертировать загруженные изображения из различных форматов в JPEG - PullRequest
4 голосов
/ 02 февраля 2011

Я занимаюсь разработкой веб-сайта, который позволяет пользователю загружать изображения. Я хотел бы иметь возможность принимать форматы 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.

1 Ответ

4 голосов
/ 02 февраля 2011

Взгляните на ImageMagick и, в частности, на команду преобразования.

...