Доступна библиотека декодирования изображений SAIL

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
14-Июл-2020 23:30

Под лицензией MIT опубликована кросс-платформенная библиотека декодирования изображений SAIL. SAIL - это переписанный на С ребрендинг кодеков из давно не поддерживаемой программы просмотра изображений KSquirrel, но с наличием высокоуровнего абстрактного API и многочисленными улучшениями. Целевая аудитория: просмотрщики изображений, разработка игр, загрузка изображений в память для иных целей. Библиотека находится в стадии разработки, но уже пригодна для использования. Бинарная совместимость и совместимость исходного кода на данном этапе разработки не гарантируется.
Возможности:
  • Простая, компактная и быстрая библиотека, написанная на С без сторонних зависимостей (кроме кодеков);
  • Простой, понятный и в тоже время мощный API для всех нужд;
  • Биндинги к C++;
  • Форматы изображений поддерживаются динамически загружаемыми кодеками;
  • Чтение (и запись) изображений из файла, памяти или даже своего собственного источника данных;
  • Определение типа изображения по расширению файла, или по магическому числу;
  • Поддерживаемые на данный момент форматы: APNG (чтение, только на Windows), JPEG (чтение, запись) PNG (чтение, запись).
    Работа по добавлению новых форматов ведётся. KSquirrel-libs так или иначе поддерживал около 60 форматов, наиболее популярные форматы стоят в очереди первыми;
  • Операции чтения всегда могут выдавать пиксели в формате RGB и RGBA;
  • Некоторые кодеки могут выдавать пиксели в ещё большем списке форматов;
  • Большинство кодеков умеют выдавать также и исходные (SOURCE) пиксели. Это пригодится, например, тем, кто захочет получить полную информацию из CMYK- или YCCK-изображений;
  • Чтение и запись ICC профилей;
  • Примеры на C, Qt, SDL;
  • Поддерживаемые платформы:
    Windows (installer), macOS (brew) и Linux (Debian).
Что SAIL не предоставляет:
  • Редактирование изображений;
  • Функции преобразования цветовых пространств кроме тех, что дают низлежащие кодеки (libjpeg и т.д.);
  • Функции управления цветом (применение ICC профилей и т.д.)
Простейший пример декодирования на C:
struct sail_context *context;
   SAIL_TRY(sail_init(&context));
   struct sail_image *image;
   unsigned char *image_pixels;
   SAIL_TRY(sail_read(path,
                   context,
                   &image,
                   (void **)&image_pixels));
   /*
    * Здесь обработайте полученные пиксели.
    * Для этого используйте image->width, image->height, image->bytes_per_line,
    * и image->pixel_format.
    */
   /* Очистка */
   free(image_pixels);
   sail_destroy_image(image);
Краткое описание уровней API:
  • Новичок: "Я просто хочу загрузить этот JPEG"
  • Продвинутый: "Я хочу загрузить этот анимированный GIF из памяти"
  • Глубоководный дайвер: "Я хочу загрузить этот анимированный GIF из памяти и иметь полный контроль над выбранными кодеками и форматом отдаваемых пикселей"
  • Технический дайвер: "Я хочу всё что выше, и мой собственный источник данных"
Прямые конкуренты из этой же области:
  • FreeImage
  • DevIL
  • SDL_Image
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf
Отличия от других библиотек:
  • Человеческий API с ожидаемыми сущностями - изображениями, палитрами и т.д.
  • Большинство кодеков умеют отдавать не только RGB/RGBA пиксели.
  • Большинство кодеков умеют отдавать исходные пиксели без преобразований в RGB.
  • Писать кодеки можно на любом языке, а также добавлять/удалять их без перекомпиляции всего проекта.
  • Сохранение информации об исходном изображении.
  • "Прощупывание" (probing) - получение информации об изображении без декодирования пиксельных данных.
  • Размер и скорость.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_sail, #_image
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 20:21
Часовой пояс: UTC + 5