Лучшая библиотека масштабирования изображений

Я искал и нашел несколько библиотек масштабирования изображений для Java. Но не уверен, что выбрать. Мне нужно создать эскизы из изображения, загруженного сервером.

Было бы здорово, если бы вы могли отличить, какой из них хороший, а какой плохой.

Список, который у меня есть:

  • JMagick
  • im4java
  • Эскиз
  • java-изображение-масштабирование
  • JAI

person Mukun    schedule 21.01.2012    source источник


Ответы (3)


В своих частных проектах я не использую какую-либо конкретную библиотеку, функциональность, предоставляемая для Java, дает мне достойные результаты. Если вы просто хотите масштабировать изображение, полная библиотека обработки изображений будет слишком тяжелой.

Я использую фрагменты кода, приведенные в http://www.mkyong.com/java/how-to-resize-an-image-in-java/, который работает довольно хорошо.

person belgther    schedule 21.01.2012

Для моих простых нужд идеально подошел Thumbnailator. Маленькая библиотека; плавный, чистый, хорошо документированный API.

В моем случае это была просто "net.coobird" % "thumbnailator" % "0.4.8" зависимость и:

//..
Thumbnails.of(originalFile)
      .size(300, 300) 
      .toFile(thumbnailFile)
//.. 

и готово. По сути, это дружественная оболочка поверх Java 2D API. Полезно для особых (миниатюрных) нужд; нет кривой обучения.


Если вам действительно не нужно делать тяжелую работу с изображениями, я бы с осторожностью полагался на внешний двоичный файл (ImageMagick и оболочки, такие как JMagick), которые добавили бы сложности и добавили бы движущиеся части в настройку. Особенно, если ваш стек похож на мой: приложение Scala / Java, работающее на Heroku. Да, есть такие вещи, как heroku-buildpack-imagemagick-cedar-14, но простая зависимость, связанная с приложением, бесконечно чище.

person Jonik    schedule 23.12.2015

API Java для создания миниатюр недостаточно, если вам нужны миниатюры высокого качества.

Для создания высококачественных миниатюр используйте фреймворк, подобный перечисленным вами. Я пробовал ImgScalr (https://github.com/thebuzzmedia/imgscalr) и Thumbnailator. С моими тестами микробенчмарков (которые на самом деле нельзя использовать для общих выводов) Thumbnailator работает быстрее, хотя и не намного, и проще, особенно при создании эскизов с прозрачностью.

Я также пробовал JMagick, но сталкивался с проблемами, просто компилируя код и настраивая его. Также немного беспокоился о том, что в дальнейшем возникнут проблемы с фреймворком, базовый код которого написан на языке, который я вообще не понимаю - C.

Вы также можете найти здесь обсуждение: Как изменить размер изображение с помощью Java?

person coderSam    schedule 27.05.2013