Лучшая библиотека для масштабирования изображений - PullRequest
11 голосов
/ 21 января 2012

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

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

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

  • JMagick
  • im4java
  • Thumbnailator
  • масштабирование изображения java
  • JAI

Ответы [ 3 ]

7 голосов
/ 23 декабря 2015

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

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

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

и done По сути, это дружественная оболочка поверх Java 2D API.Полезно для конкретных (thumbnailin ') потребностей;без обучениядвижущиеся части в настройке.Особенно, если ваш стек похож на мой: Scala / Java-приложение, работающее на Heroku.Есть такие вещи, как heroku-buildpack-imagemagick-cedar-14, да, но простая зависимость в комплекте с приложением бесконечно чище.

6 голосов
/ 27 мая 2013

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

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

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

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

4 голосов
/ 21 января 2012

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

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

...