Началось развитие проекта ImageFlow (https://www.imageflow.io/), нацеленного на создание решения для масштабирования, редактирования и оптимизации изображений в web-приложениях, которое могло бы стать безопасной и высокопроизводительной альтернативой пакету ImageMagick. Код проекта написан на языке Си и распространяется (https://github.com/imazen/imageflow) под лицензией AGPL. Бинарные сборки формируются для Linux, OS X и Windows. Биндинги уже подготовлены для Ruby и Node.js, и находятся в разработке для C# и PHP. Для финансирования продолжения разработки запущена кампания (https://www.kickstarter.com/projects/njones/imageflow-respec...) на Kickstarter.
В отличие от других инструментов ImageFlow не предоставляет интерфейс пользователя и предназначен только для встраивания в другие приложения. Для обработки изображений предлагается два компонента:
Библиотека c API для манипуляции изображениями в локальных приложениях, работающих на сервере.
Серверный процесс imageflow-server для интеграции с работающими на стороне браузера web-приложениями, предоставляющий REST API для обработки внешних запросов и отдачи отмасштабированных изображений (например, указав при запросе изображения "?width=400" получим его вариант, уменьшенный до 400 пикселей). Возможно выполнение пакетных операций с изображениями при помощи задания списка команд в формате JSON.
Доступный в настоящее время прототип библиотеки в 10 раз опережает (https://www.imageflow.io/benchmarks/) ImageMagick по производительности при выполнении наиболее часто применяемой в web операции по уменьшению масштаба изображений (в тесте было произведено уменьшение jpeg с 5104x3380 и 4000x2590 до ширины в 400 пикселей). Сервер imageflow-server изначально развивается с оглядкой на возможность работы с коллекциями изображений петабайтного размера.
ImageFlow не пытается догнать ImageMagick по функциональности и предлагает поддержку только востребованных в Web операций и форматов (jpeg, gif и png), но предоставляет при этом превосходящее визуальное качество и более высокий уровень сжатия для результатов преобразований за счёт применении при кодировании изображений более совершенных алгоритмов (https://www.opennet.ru/opennews/art.shtml?num=41371). Для обеспечения безопасности разработчики стараются обойтись минимальной кодовой базой для упрощения аудита, уделяя большое внимание тестированию и внимательно относясь к внешним зависимостями.
Из уже доступных функций можно отметить: масштабирование с оптимизациями качество/скорость, обрезание краёв, вращение, зеркалирование, заливка, поддержка цветовых палтр (sRGB), наложение и совмещение изображений, автоматическое удаление белых рамок, автоматическая корректировка баланса белого. Обеспечена интеграция с libjpeg-turbo, mozjpeg, libpng и libgif. Из планов на будущее отмечается переработка наиболее сложных частей на языке Rust, создание интерфейса командной строки, создание API для написания плагинов с поддержкой дополнительных кодеков, поддержка анимированных GIF и средства для работы с метаданными изображений. В качестве примеров возможных будущих плагинов упоминаются модули для поддержки формата WebP и распознавания лиц на фотографии.
URL: https://www.kickstarter.com/projects/njones/imageflow-respec...
Новость: http://www.opennet.ru/opennews/art.shtml?num=44552