=encoding UTF-8 =head1 НАИМЕНОВАНИЕ BH_Bitmap - доступ к растровому изображению/картинке с изображением =head1 СИНТАКСИС #include cc prog.c -o prog -lbh =head1 ОПИСАНИЕ Модуль BH_Bitmap предоставляет методы для доступа к пиксельным данным растрового изображения и для преобразования между различными пиксельными форматами. =head1 ФОРМАТЫ В настоящее время поддерживаются следующие пиксельные форматы: =over =item B 8-разрядный индексированный/палитрированный =item B 8-разрядные оттенки серого =item B 16-битные оттенки серого =item B 32-разрядный RGB с прозрачностью, представленный в виде uint32_t. Формат: 0xAARRGGBB =item B 64-разрядный RGB с прозрачностью, представленный в виде uint64_t. Формат: 0xAAAARRRRGGGGBBBB =item B 16-разрядный RGB =item B 24-разрядный RGB =item B 32-разрядный RGB с прозрачностью =item B 48-разрядный RGB =item B 64-разрядный RGB с прозрачностью =item B 32-разрядный RGB с прозрачностью =back Во всех форматах пикселей используется нативный порядок байт. Флаг I может использоваться для изменения порядка цветовых каналов (RGB -> BGR). Этот флаг не влияет на следующие пиксельные форматы: I, I, I, I и I. Флаг I может использоваться для указания того, что альфа-канал не используется и всегда должен быть установлен в максимальное значение (255 для 8-разрядных и 65535 для 16-разрядных). Флаг I может использоваться для указания того, что значения цвета представлены в предварительно умноженном виде. Предполагается, что цветовая палитра содержит ровно 256 цветов и хранится в пиксельном формате I. =head1 ВЫЗОВЫ API =head2 BH_BitmapNew BH_Bitmap *BH_BitmapNew(int width, int height, int format, int flags, void *data, void *palette); Создает растровое изображение с указанной шириной, высотой и пиксельным форматом. Параметры I и I указывают размеры изображения. Параметр I указывает используемый пиксельный формат изображения. Параметр I может принимать комбинацию из следующих значений: =over =item B Строки выравниваются по 32-разрядной границе =back Необязательный параметр I указывает на существующие данные. Необязательный параметр I указывает на существующую палитру. Эта функция возвращает указатель на новый объект BH_Bitmap или значение NULL. =head2 BH_BitmapFree void BH_BitmapFree(BH_Bitmap *bitmap); Уничтожает растровый объект. =head2 BH_BitmapColor void BH_BitmapColor(const BH_Bitmap *bitmap, int x, int y, BH_Color *value); Считывает значение цвета пикселя в указанной позиции. Параметры I и I определяют положение на растровом изображении. =head2 BH_BitmapSetColor void BH_BitmapSetColor(BH_Bitmap *bitmap, int x, int y, const BH_Color *value); Записывает значение цвета пикселя в указанной позиции. Параметры I и I определяют положение на растровой карте. =head2 BH_BitmapCopy BH_Bitmap *BH_BitmapCopy(BH_Bitmap *bitmap, int x, int y, int width, int height, int shallow); Создает копию области растрового изображения с заданным положением и размером. Параметры I и I задают положение на растровом изображении. Параметры I и I задают размер нового растрового изображения. Параметр I указывает, является ли новое растровое изображение поверхностной копией (или отображением) существующего растрового изображения или его глубокой копией. Для работы с поверхностной копией область должна находиться в пределах существующего растрового изображения. Эта функция возвращает указатель на новый объект BH_Bitmap или NULL. =head2 BH_BitmapScanline void *BH_BitmapScanline(const BH_Bitmap *bitmap, int y); Возвращает адрес строки сканирования в растровом изображении. =head2 BH_BitmapAt void *BH_BitmapAt(const BH_Bitmap *bitmap, int x, int y); Возвращает адрес пикселя в растровом изображении. =head2 BH_BitmapWidth int BH_BitmapWidth(BH_Bitmap *bitmap); Возвращает ширину растрового изображения. =head2 BH_BitmapHeight int BH_BitmapHeight(BH_Bitmap *bitmap); Возвращает высоту растрового изображения. =head2 BH_BitmapFormat int BH_BitmapFormat(BH_Bitmap *bitmap); Возвращает пиксельный формат растрового изображения. =head2 BH_BitmapStride size_t BH_BitmapStride(BH_Bitmap *bitmap); Возвращает шаг строки растрового изображения. =head2 BH_BitmapData void *BH_BitmapData(BH_Bitmap *bitmap); Возвращает указатель на пиксельные данные растрового изображения. =head2 BH_BitmapPalette void *BH_BitmapPalette(BH_Bitmap *bitmap); Возвращает указатель на палитру растрового изображения. =head2 BH_BitmapFlags int BH_BitmapFlags(BH_Bitmap *bitmap); Возвращает флаги растрового изображения. Результатом может быть комбинация следующих значений: =over =item B Строки выравниваются по 32-битной границе =item B Растровому изображению не принадлежат пиксельные данные =item B Растровому изображению не принадлежат данные палитры =back =head2 BH_BitmapConvertRow void BH_BitmapConvertRow(void *src, int srcFormat, void *srcPalette, void *dest, int destFormat, void *destPalette, size_t count); Преобразует строку исходных данных из одного пиксельного формата в другой пиксельный формат. Параметры I и I указывают источник данных и его формат в пикселях. Параметр I указывает исходную палитру (если это требуется для формата в пикселях). Параметры I и I указывают назначение данных и их формат в пикселях. Параметр I определяет целевую палитру (если этого требует формат пикселя). Параметр I определяет количество пикселей для преобразования. =head1 СМ. ТАКЖЕ L