Доступна библиотека декодирования изображений SAIL
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Под лицензией 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
===========
Похожие новости
- Главная ссылка к новости (https://github.com/smoked-herr...)
- OpenNews: Прототип интерфейса для переноса изображений из реального мира в графический редактор
- OpenNews: В рамках проекта Drawing развивается новый редактор изображений для Linux
- OpenNews: Уязвимость в библиотеке SDL, приводящая к выполнению кода при обработке изображений
- OpenNews: Компания Intel опубликовала библиотеку для шумоподавления и фильтрации изображений
- OpenNews: Релиз фреймворка для обработки изображений G'MIC 2.2
Похожие новости:
- [Искусственный интеллект, Машинное обучение, Обработка изображений] MIT убрал датасет Tiny Images из-за расистских и оскорбительных терминов
- MIT удалил коллекцию Tiny Images из-за выявления расистских и женоненавистнических терминов
- Выпуск растрового графического редактора Krita 4.3.0
- [Разработка веб-сайтов, JavaScript, SvelteJS] Возможно, вам не нужен Svelte чтобы уменьшить ваш Javascript
- [.NET] Загрузка и обработка изображений в .NET Core
- [Алгоритмы, Обработка изображений] Как мы используем алгоритмы компьютерного зрения: обработка видео в мобильном браузере с помощью OpenCV.js
- [Java, IT-инфраструктура, Разработка под MacOS, Разработка под Linux] Строим pipeline для доставки Graal Native Image конечным пользователям
- Выпуск редактора векторной графики Inkscape 1.0
- Прототип интерфейса для переноса изображений из реального мира в графический редактор
- В Firefox 77 появится поддержка изображений AVIF
Теги для поиска: #_sail, #_image
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:16
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Под лицензией MIT опубликована кросс-платформенная библиотека декодирования изображений SAIL. SAIL - это переписанный на С ребрендинг кодеков из давно не поддерживаемой программы просмотра изображений KSquirrel, но с наличием высокоуровнего абстрактного API и многочисленными улучшениями. Целевая аудитория: просмотрщики изображений, разработка игр, загрузка изображений в память для иных целей. Библиотека находится в стадии разработки, но уже пригодна для использования. Бинарная совместимость и совместимость исходного кода на данном этапе разработки не гарантируется. Возможности:
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);
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:16
Часовой пояс: UTC + 5