2012-03-06 3 views
4

В Thumbnailator, я делаю миниатюры.Использование Thumbnailator, могу ли я сделать эскиз с одинаковой высотой и шириной, независимо от размера изображения

Если размер изображения 400 * 300, и если я следующие вещи,

Thumbnails.of(new File("original.jpg")) 
     .size(160, 160) 
     .toFile(new File("thumbnail.jpg")); 

это создать миниатюру 160 * 120.

Что я хочу, если я загружу 400 * 300 изображений, он будет центрировать масштаб так, чтобы я стал 300 * 300, а затем он будет уменьшенным.

Я прошел через документацию, даже я отправил то же самое в комментарии, но не повезло.

+0

Я удалил ссылки на «Google thumbnailator», поскольку библиотека Thumbnailator никоим образом не связана с Google. Это всего лишь проект, который размещен в Google Project Hosting. Кроме того, чтобы сообщить вам, я не заметил, что вы разместили вопрос на одной из страниц документации Wiki в проекте Thumbnailator, так как Google недавно отключил функцию уведомления об обновлении, которая могла бы привести ее к мое внимание. – coobird

+0

Я так рад видеть этот ответ ..! Прямо сейчас я делаю BufferImage с getSubimage() ...! Он работал, но был счастлив иметь что-то встроенное ...! ;) действительно отличная библиотека ...! так проста в использовании ...! :) – KuKu

+0

Рад, что вы нашли библиотеку полезной :) – coobird

ответ

9

Похоже, работа по методу sourceRegion, который может быть использован для определения области, с которой эскиз должен быть произведен:

Illustration of creating a thumbnail using the <code>sourceRegion</code> method in Thumbnailator http://wiki.thumbnailator.googlecode.com/hg/img/features/sourceregion.png

В вашем конкретном случае, вы хотите попробовать следующее :

Thumbnails.of(new File("original.jpg")) 
    .sourceRegion(Positions.CENTER, 300, 300) 
    .size(160, 160) 
    .toFile(new File("thumbnail.jpg")); 

Приведенный выше код будет:

  1. открыть original.jpg,
  2. использовать центральный 300 х 300 область исходного изображения, и
  3. Изменение размера, что область в 160 х 160 пиктограмме и
  4. Запись в thumbnail.jpg.

Можно выбрать различные регионы исходного изображения путем изменения Positions.CENTER, например, Positions.TOP_LEFT. Полный список предопределенных вариантов см. В документации для перечисления Positions.


Ниже приведены некоторые ссылки на API документации Thumbnailator, которые могут представлять интерес:

  • sourceRegion(int, int, int, int) метод
    • Используется для указания точного региона, из которого создать миниатюру.
  • sourceRegion(Position, int, int) метод
    • Использует относительное позиционирование с помощью Position объекта, как показано в примере кода выше.
  • sourceRegion(Rectangle) метод
    • Используется для указания точного региона, из которого создать миниатюру, используя java.awt.Rectangle объект.
  • Position перечисления
    • Обеспечивает предварительно определенные позиции, которые могут быть использованы для определения относительного положения области, из которой для создания эскиза.

Отказ от ответственности: Я хранитель Thumbnailator библиотеки.

+0

спасибо за это. Он отлично работает – db80

+0

@ db80 Рад, что вы нашли это полезным :) – coobird

Смежные вопросы