Описание изображения
#include <img.h>typedef struct {union {struct {uint8_t *data;unsigned stride;} direct;struct {img_access_f *access_f;uintptr_t data;} indirect;} access;unsigned w, h;img_format_t format;unsigned npalette;img_color_t *palette;unsigned flags;union {uint8_t index;uint16_t rgb16;img_color_t rgb32;} transparency;unsigned quality;} img_t;
Структура img_t описывает декодированный кадр и включает следующие поля:
IMG_DIRECT
или IMG_INDIRECT
определяют прямой или косфенный режима доступа. IMG_DIRECT
для работы изображением, обращаться к данным нужно напрямую через указатель. На начало данных изображения указывает direct.data и предполагается, что они являются непрерывным буфером из h строк сканирования и direct.stride байтов каждая. ![]() | При необходимости stride может быть больше, чем фактическое количество байтов, необходимых для представления одной строки сканированияв указанном формате; при работе с изображением нельзя перезаписывать или иным образом обрабатывать "промежуточные" байты заполнения. |
IMG_DIRECT
требует доступа к данным посредством функции; указатель функции задается в indirect.access_f, а indirect.data предоставляет возможность доступа функции к некоторому контексту. void access_f( uintptr_t data, unsigned x, unsigned y, unsigned n, uint8_t *pixels );
![]() | Формат данных в pixels будет таким же, как формат изображения: преобразования данных не производится. Аргументы x, y и n гарантированно не выходят за границы изображения, поэтому проверять их не нужно. |
IMG_W
и IMG_H
. IMG_FORMAT
. IMG_FMT_PALETTE
в format). IMG_PALETTE
. IMG_TRANSPARENCY
. Поле объединения следует использовать в зависимости от формата изображения: IMG_FMT_PALETTE
в format или формат равен IMG_FMT_G8
). IMG_FMT_PKHE_ARGB8888
. IMG_QUALITY
, кодеки могут обрабатывать поле quality. Например, img_codec_jpg.so будет использовать это значение для определения качества вывода при кодировании. При вызове img_write_file(). Графическая подсистема ЗОСРВ «Нейтрино», Библиотека Image
img_color_t, img_format_t, img_decode_callouts_t, img_decode_frame(), img_decode_validate(), img_load_file()
Предыдущий раздел: Image API