#java #image-processing #maven #resize #crop
#java #обработка изображений #maven #изменение размера #обрезка
Вопрос:
В настоящее время я использую imageBuffer / ImageIO. Это отлично работает в Windows, но по какой-то причине не работает с файлами PNG в Linux. Я понятия не имею, почему.
Я думаю, мне просто нужно использовать другую библиотеку. Поскольку я разрабатываю на Windows, мне хотелось бы что-то, что работает на обеих системах без особых усилий, и не требует вызова процесса, если я могу этого избежать. Я не хочу иметь дело с адом конфигурации или требовать, чтобы какой-то двоичный файл существовал где-то локально в системе только для прохождения тестов.
Есть ли что-то, что может помочь, или ImageMagick — практически единственный вариант? Не похоже, что в Java есть какие-либо приятные опции для работы с изображениями: (
Я также хотел бы что-то, что просто подключается к Maven и работает, как и любая другая библиотека. Мой прошлый опыт работы с библиотеками изображений Java научил меня, что на самом деле они не соответствуют скорости Maven и являются своего рода древними (я не могу вспомнить, какая библиотека таким образом… но я просто не хочу честно разбираться с проблемами конфигурации и развертывания… Я просто хочу вызвать хороший API).
Спасибо
Комментарии:
1. Работают ли png-файлы в Windows? В руководстве по Java говорится, что PNG поддерживается всегда.
2. И, может быть, вы можете показать нам ошибку, которую вы видите?
3. Да, файлы png работали в Windows. Проблема заключалась в том, что буфер изображений, содержащий PNG в Linux (debian-lenny), возвращал 0 при вызове GetType(), когда он должен был возвращать 5. Итак, я просто вставил хак, который проверяет 0 и вводит 5 вручную. Я знаю, что это отстой и халтурно, но это устранило проблему.
Ответ №1:
Я переключился на использование JAI, потому что у него была более гибкая фильтрация и сглаживание, которые мне были нужны при изменении размера PNG в программе Java. У меня не было никаких проблем при запуске в Windows или Linux — оба, кажется, работают нормально.
Комментарии:
1. Я использую его с maven…. Возможно, мне приходилось вручную импортировать файл .jar в мой репозиторий Maven, я не могу вспомнить. Однако у меня не было с этим никаких проблем.
2. Это то, чего я боялся. Можно подумать, что они просто добавят это в репозиторий maven через 4 года с момента их последнего обновления :/ Просто сложно создать и проверить скрипт, который устанавливает jar-файлы в директоре .m2 для каждого человека / компьютера, работающего над проектом, и убедиться, что он согласован и работает для всех. Проблему можно было бы так легко решить, если бы они просто добавили ее в репозиторий maven :/
3. Просто добавьте его один раз в репозиторий вашего предприятия и позвольте Maven загрузить его в ваш локальный репозиторий.
4. Да, я думаю, это просто раздражает создание корпоративного репозитория для 1 библиотеки. Мне нравится жаловаться. Sun / oracle создают множество API / библиотек, и 99% из них доступны через maven… но затем вы получили этот выброс JAI, который не обновлялся 4 года, и хороших альтернатив нет… и это заставляет людей прилагать массу усилий только для того, чтобы получить к нему доступ. Это просто отнимает много времени, чтобы даже запустить это дело. К тому времени сотрудники rails уже все закончили. Просто раздражает, как много времени уходит в мире Java на выполнение таких простых вещей.