Facebook представил первый стабильный релиз проекта Spectrum, в рамках которого развивается кроссплатформенная библиотека для перекодирования и обработки изображений. Код проекта написан на языке С++ и распространяется под лицензией MIT. Для Android и iOS предоставляются надстройки на Java и Objective-C, позволяющие в мобильных приложениях эффективно выполнять различные операции с изображениями.
Библиотека предоставляет простой декларативный API, дающий возможность определить характеристики выходного изображения и Spectrum сам вычислит и выполнит все необходимые преобразования, включая разбор и изменение метаданных EXIF. Обработчики форматов изображений определены в виде плагинов. Например, для формата JPEG по умолчанию применяется кодировщик Mozjpeg, обеспечивающий более высокую степень сжатия. Для обработки PNG применяется libpng, а для WEBP — libwebp.
Основные операции:
- Кодирование — преобразование битмапа в изображение в заданном формате;
- Декодирование — преобразование форматов в битмап;
- Перекодирование — конвертация из одного формата в другой;
- Преобразование — кадрирование, вращение, изменение размера и т.п.