Библиотека графики Java
Я ищу высокоуровневую графическую библиотеку java для создания художественного текста, водяных знаков, изменения размера, обрезки, идентификации изображений и манипуляций.
ImageMagic - хороший пример такой библиотеки, но его java-порты несколько проблематичны (они либо запускают imagemagic через JNI, либо через командную строку и адские для развертывания на серверах).
В идеале я хотел бы иметь аналогичную функциональность для ImageMagic, но чистую Java и open-source, свободную в использовании.
Кто-нибудь видел что-то подобное?
Это для серверного компонента. Служба, которая управляет изображениями различных веб-форматов (png, jpg, gif и т.д.).
Java имеет свои собственные библиотеки, конечно (Graphics2D), но я ищу что-то более высокого уровня.
Вот несколько вариантов использования:
- Изменить размер и обрезать изображения. Если у него есть "умное изменение размера" или "умная обрезка", что будет круто, например, изменение размера шва, или обрезка по интересующим вас фотографиям.
- Рисование художественного текста на изображениях. Использование шрифтов, цветов, текстовых эффектов (3D-текст, уголь и другие эффекты).
- Ввод водяных знаков.
- Слои изображения, использование изображений в качестве фона, маскировка изображений и т.д.
- Идентификация изображения, такая как - количество цветов, stdev и т.д.
Как уже упоминалось, Java в Graphics2D поддерживает все вышеперечисленное, но слишком низкое, поэтому я ищу что-то, с чем лучше работать.
Спасибо!
Ответы
Ответ 1
Java Advanced Imaging (JAI) звучит так, как вы хотите. На веб-сайте:
API расширенной визуализации Java предоставляет набор объектно-ориентированных интерфейсов которые поддерживают простой, высокоуровневый модель программирования, которая позволяет вам легко манипулировать изображениями.
Мне было относительно легко работать. И производительность была лучше, чем отключение процессов ImageMagic.
Ответ 2
Используйте ImageJ. В дополнение к тому, чтобы быть чистой программой, ее можно использовать в качестве библиотеки.
Ответ 3
Ответ 4
Raw Java2D упрощает изменение размера и обрезки (просто убедитесь, что вы уменьшаете полномочия 2, бэкэнд не обрабатывает это автоматически). Я только нашел JAI полезным для моего использования, чтобы сделать квантование цвета... остальная часть конвейера казалась ненужной для основных функций.