Какая лучшая библиотека обработки изображений java?

Я использую как JAI media apis, так и ImageMagick?

ImageMagick имеет некоторые проблемы с масштабируемостью, и JMag на JNI тоже не привлекателен. JAI имеет низкие результаты качества при выполнении операций изменения размера по сравнению с ImageMagick.

Кто-нибудь знает о каких-либо превосходных инструментах с открытым исходным кодом или рекламой, которые являются родной Java и обеспечивают высокое качество результатов?

Ответ 1

Здесь ImageJ, который может похвастаться

самый быстрый в мире чистый образ Java программа обработки

Он может использоваться как библиотека в другом приложении. Эта архитектура не блестящая, но она выполняет основные задачи обработки изображений.

Ответ 2

Я знаю, что этот вопрос довольно старый, но по мере появления нового программного обеспечения он помогает получить некоторые новые ссылки на проекты, которые могут быть интересны для людей.

imgscalr - это изменение размера изображения в чистом виде (и простые ops, такие как заполнение, обрезка, поворот, яркость/затемнение и т.д.), библиотека больно простой - один класс состоит из набора простых графических операций, которые все определены как статические методы, которые вы передаете с изображением и возвращаете результат.

Самый простой пример использования библиотеки будет выглядеть так:

BufferedImage thumbnail = Scalr.resize(image, 150);

И более типичное использование для создания эскизов изображений с использованием нескольких настроек качества и т.д. может выглядеть следующим образом:

import static org.imgscalr.Scalr.*;

public static BufferedImage createThumbnail(BufferedImage img) {
    // Create quickly, then smooth and brighten it.
    img = resize(img, Method.SPEED, 125, OP_ANTIALIAS, OP_BRIGHTER);

    // Let add a little border before we return result.
    return pad(img, 4);
}

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

imgscalr также был развернут в крупномасштабных постановках в довольно много мест - включение класса AsyncScalr делает его идеальным приложением для любой обработки изображений на стороне сервера.

Существует множество настроек качества изображения, которые вы можете использовать для обмена между скоростью и качеством с самым высоким режимом ULTRA_QUALITY, обеспечивающим масштабированный результат, который выглядит лучше, чем реализация GIMP Lancoz3.

Ответ 3

Другая хорошая альтернатива: Marvin

Ответ 5

Processing является новым, но очень, очень хорошим.

Ответ 6

Попробуйте использовать Catalano Framework.

Ключевые точки:

  • Архитектура, например, AForge.NET/Accord.NET.
  • Запустите в обеих средах с тем же кодом, на рабочем столе и Android.
  • Содержит несколько фильтров параллельно.
  • Разработка идет полным ходом.

Catalano Framework - это основа для научных вычислений для Java и Android. Проект начался как начальный порт многих функций фреймворков AForge.NET и Accord.NET для .NET, но неуклонно растет с более продвинутыми функциями, которые теперь разделяются между этими проектами.

Пример:

FastBitmap fb = new FastBitmap(bitmap);

Grayscale g = new Grayscale();
g.applyInPlace(fb);

Threshold t = new Threshold(120);
t.applyInPlace(fb);

bitmap = fb.toBitmap();

//Show the result

Ответ 7

imo лучший подход заключается в использовании GraphicsMagick Image Processing System с im4java в качестве интерфейса командной строки для Java.

Существует много преимуществ GraphicsMagick, но один для всех:

  • GM используется для обработки миллиардов файлов на крупнейшей в мире фотографии сайтов (например, Flickr и Etsy).

Ответ 8

http://im4java.sourceforge.net/ - если вы используете linux для нового процесса, это не дорого.

Ответ 9

Для коммерческих инструментов вы можете попробовать Snowbound.

http://www.snowbound.com/

Мой опыт с ними несколько устарел, но я нашел, что их API визуализации Java намного проще в использовании, чем JAI и намного быстрее.

Поддержка клиентов и образцы кода были очень хорошими.

Ответ 10

Программное обеспечение Vision RoboRealm list упоминает JHLabs и NeatVision среди множества других не-Java-библиотек.

Ответ 11

Я не могу сказать, что это "лучшая" библиотека, но я думаю, вы можете попробовать это: http://algart.net/java/AlgART/ Это библиотека Java с открытым исходным кодом, поддерживающая обобщенные "интеллектуальные" массивы и матрицы с элементами разных типов (от 1 до 64 бит), включая 2D-, 3D- и многомерную обработку изображений и другие алгоритмы, работающие с массивов и матриц. К сожалению, сейчас он не содержит демо и примеров, но, с другой стороны, он содержит много JavaDocs. Он лежал в основе коммерческого программного обеспечения (SIMAGIS) в течение нескольких лет, но теперь он с открытым исходным кодом.