Что такое bmp тип данных
Обзор формата BMP
В этом разделе содержатся сведения о коде встроенного BMP, доступном через компонент Windows Imaging Component (WIC).
Удостоверение кодека
В следующей таблице приведены сведения об идентификации кодека.
Компонент | Описание |
---|---|
Формальные имена | Формат точечных рисунков Windows |
Расширения имени файла | BMP, DIB |
тип MIME | image/bmp |
Поддержка спецификаций | Спецификация BMP V5 |
В следующей таблице перечислены идентификаторы GUID, используемые для распознавания встроенных компонентов кодека BMP.
Компонент | Понятное имя | Код GUID |
---|---|---|
Формат контейнера | GUID _ контаинерформатбмп | 0af1d87e-фкфе-4188-bdeba7906471cbe3 |
Показан | _ВИКБМПДЕКОДЕР CLSID | 6b462062-7cbf-400d-9fdb813dd10f2778 |
Кодировщик | _ВИКБМПЕНКОДЕР CLSID | 69be8bb4-d66d-47c8-865aed1589433782 |
Кодирование
API кодирования WIC разработан как независимый от кодека, поэтому кодировка изображения для кодеков с поддержкой WIC практически одинакова. Дополнительные сведения о кодировании изображений с помощью API WIC см. в разделе Общие сведения о кодировке.
Параметры кодировщика
В следующей таблице перечислены параметры кодировщика WIC, поддерживаемые кодеком Native BMP.
Имя свойства | VARTYPE | Диапазон значений: | Значение по умолчанию |
---|---|---|---|
EnableV5Header32bppBGRA | Логическое значение VT _ | ВАРИАНТ _ true/Variant _ false | ВАРИАНТ _ false |
EnableV5Header32bppBGRA
Указывает, разрешено ли кодирование данных в _ формате GUID WICPixelFormat32bppBGRA пикселей. Если этот параметр имеет значение _ true, BMP будет записан с заголовком BITMAPV5HEADER.
Значение по умолчанию — Variant _ false.
Если в списке параметров IPropertyBag2 есть параметр кодировщика, который не поддерживается кодеком, он игнорируется.
Примечание для 16-разрядных и 32-разрядных файлов Windows BMP кодек BMP игнорирует любой альфа-канал, так как многие файлы образов прежних версий содержат недопустимые данные в этом дополнительный канал. Начиная с Windows 8, 32-разрядные файлы Windows BMP, написанные с помощью BITMAPV5HEADER с допустимым содержимым альфа-канала, считываются как WICPixelFormat32bppBGRA.
Декодирование
Интерфейс API декодирования WIC разработан как независимый от кодека, а декодирование изображений для кодеков, поддерживающих WIC, по сути является одинаковым. Дополнительные сведения о декодировании изображений см. в разделе Общие сведения о декодировании. Дополнительные сведения об использовании декодированных данных изображения см. в разделе Обзор источников точечных рисунков.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
BMP (Bitmap Picture)
Основным недостатком данного формата является то, что только версии формата с 4- и 8-битовым цветом поддаются сжатию. Следовательно, 24-битовые файлы BMP будут очень большими. Кроме того, применение файлов BMP ограничено платформами Windows и OS/2. Все это делает невозможным применение данного формата в Сети. В то же время этот формат используется при создании графических файлов в графических редакторах и при сканировании изображений. В связи с этим знание особенностей этого формата графических файлов разработчику веб-страниц целесообразно.
Каждый файл BMP содержит заголовок файла, заголовок изображения, растровые данные и карту цветов (кроме изображения 24-битным цветом).
Заголовок файла ВМР содержит информацию о типе и размере файла, а также о расположении в нем данных. После заголовка файла следует структура, задающая информацию о размере, цвете и сжатии изображения.
Сжатие. Поле biCompression в BITMAPINFO определяет, какой тип сжатия используется в файле. Если значение поля равно BI_RGB, то рисунок не сжимается. Если же значение поля равно BI_RLE4 или BI_RLE8, то рисунок использует метод сжатия групповым кодированием для изображений, соответственно, с 4-бит/пиксель или 8 бит/пиксель.
Карта цветов. Значение поля biCirUsed определяет, будут ли использоваться растровым рисунком индексированные цвета. Если рисунок состоит из 1-, 4-, 8-битовых пикселей, то должна использоваться карта цветов. Если значение поля biCirUsed равно нулю, то применяется либо полная карта, либо 24-битовый цвет. Если поле не равно нулю, то его значение равно действительному количеству цветов, которые будут доступны программе-генератору графики или драйверам устройств. Поле biClrimportant определяет, сколько цветов в индексированной карте считаются важными для изображения рисунка. Если его значение равно нулю, то важными будут все цвета.
Растровые данные. За картой цветов следуют растровые данные. Они хранятся в виде 1-, 4-, или 8-битовых индексов карты цветов или в виде буквенных 24-битовых данных системы RGB. Пиксели в растре записываются, начиная с нижнего левого угла изображения, и читаются слева направо и снизу вверх.
Что такое bmp тип данных
BMP (от англ. Bitmap Picture ) — формат хранения растровых изображений, разработанный компанией Microsoft. Файлы формата BMP могут иметь расширения .bmp, .dib и .rle.
С форматом BMP работает огромное количество программ, так как его поддержка интегрирована в операционные системы Windows и OS/2. Кроме того, данные этого формата включаются в двоичные файлы ресурсов RES и в PE-файлы.
В данном формате можно хранить только однослойные растры. На каждый пиксель в разных файлах может приходиться разное количество бит (глубина цвета). Microsoft предлагает битности 1, 2, 4, 8, 16, 24, 32, 48 и 64. В битностях 8 и ниже цвет указывается индексом из таблицы цветов (палитры), а при бо́льших — непосредственным значением. Цвет же в любом случае можно задать только в цветовой модели RGB (как при непосредственном указании в пикселе, так и в таблице цветов), но в битностях 16 и 32 можно получить Grayscale с глубиной до 16 и 32 бит, соответственно. Частичная прозрачность реализована альфа-каналом битностей от 16 бит и выше.
В большинстве случаев пиксели хранятся в виде относительно простого двумерного массива. Для битностей 4 и 8 доступно RLE-кодирование, которое может уменьшить их размер. Формат BMP также поддерживает встраивание данных в форматах JPEG и PNG. Но последнее скорее больше предназначено не для компактного хранения, а для обхода ограничений архитектуры GDI, которая не предусматривает прямую работу с изображениями отличных от BMP форматов. В последних версиях формата BMP также появились возможности по управлению цветом. В частности, можно указывать конечные точки, производить гамма-коррекцию и встраивать цветовые профили ICC.
Русские Блоги
Подробный формат BMP
Перепечатано из https://blog.csdn.net/u012877472/article/details/50272771
Вот краткое введение в формат BMP на конкретном примере.
1. Общая информация
Файлы в формате BMP выглядят следующим образом от начала до конца:
Ниже приводится подробное введение через следующие рисунки:
Часть информации об изображении выглядит следующим образом:
2. заголовок файла bmp
Заголовок файла bmp содержит следующую информацию:
индекс | синий | зеленый | красный | Alpha |
0 | 01 | 10 | 37 | 00 |
1 | 00 | 10 | 49 | 00 |
2 | 00 | 18 | 44 | 00 |
3 | 01 | 1D | 58 | 00 |
Тогда размер растровых данных:
В этом случае после сканирования строки данных последние несколько байтов могут быть заполнены 0, и их необходимо пропустить:
Интеллектуальная рекомендация
Как сделать ваши данные PPT из Python?
Нажмите на «Программирование«Выберите набор наУстановить как звездный стандарт” Качественные статьи, впервые доставка! Автор: Костас Андреу Компиляция сердца машины Участие: Джамин, Ч.
Jquery plugin orgchart для достижения приема дисплея многократной структуры деревьев
Требования: передняя стойка реализует графическое отображение нескольких узлов деревьев, а некоторая информация сохраняется на узле для формирования серии JSON к обрабатыванию фона. &nbs.
Использование динамических разрешений и анализ исходного кода RxPermissions
Основное использование После Android 6.0 была добавлена динамическая конфигурация разрешений. Цель состоит в том, что пользователи могут свободно выбирать, предоставлять ли разрешения приложения. Да.
Анализ исходного кода Dubbo (11) Обменник Dubbo
Посмотри сначалаExchangerОпределение интерфейсаbindс участиемconnect ,bindОн вызывается сервером и связывает порт для приема запросов от клиента.connectЭто как клиент для подключения к серверу и обмен.
Разница между формальными параметрами и фактическими параметрами в Java
1. Используйте в функции: Формальный параметр появляется в определении функции и может использоваться во всем теле функции, но не может использоваться вне функции. Фактический параметр появляется в ос.
jenyay.net
Софт, исходники и фото
Описание формата BMP
Эта статья про то, как выглядит графический формат bmp. Хоть это и один из простых форматов, но из-за того, что существует много вариаций этого формата, то не все моменты очевидны. Итак, хватит лить воду, начнем.
Структуры формата
Для начала приведем графическое представление данных в bmp (картинка взята из MSDN).
В начале стоит заголовок файла (BITMAPFILEHEADER). Он описан следующим образом:
Здесь и далее будем считать, что переменная bfh объявлена как BITMAPFILEHEADER bfh;
А дальше идет структура BITMAPINFOHEADER, которая объявлена так:
Виды формата BMP
Хранение данных в формате bmp
Сразу за палитрой идет сам растр. Тут уже более запутано. Во-первых, пиксели тут описываются так, как написано в таблице выше в зависимости от формата. И могут сами содержать значение компонентов цвета (для беспалитровых), а могут быть индексами массива-палитры. Сама картинка записывается построчно. Во-вторых, картинка идет как бы перевернутая вверх ногами. То есть сначала записана нижняя строка, потом предпоследняя и так далее до самого верха. И, в-третьих, как написано в [1], если размер строки растра не кратен 4, то она дополняется от 1 до 3 пустыми (нулевыми) байтами, чтобы длина строки оказалась кратна параграфу. Вот это и есть самое неприятное. Дело в том, что для каждого формата приходится подстраивать это число пустых байтов (правда, я люблю туда записывать часть палитры, просто мне не хочется заводить лишние «нулевые» переменные, если все-равно эти байты пропускают и никому они не нужны). Я привожу таблицу с формулами, которые показывают для какого формата сколько байт надо дописывать в конец строки. Там под переменной Width, как можно догадаться, подразумевается ширина картинки. Все эти формулы были установлены экспериментально. Я приведу пример только для наиболее используемых форматов. Для остальных вы можете написать сами.
biBitCount | Формула на С |
8 | (3 * Width) % 4 |
16 | (2 * Width) % 4 |
24 | Width % 4 |
Примеры программ
Все исходники вы можете скачать отсюда.Я особо не буду тут много писать. Просто приведу функции с комментариями.
Привет 1. Создание картинки в формате bmp.
Здесь создается однотонная картинка. В примерах таких функций три: создание bmp 8, 16 и 24 бит. Я приведу только для 16-битных.
// Создадим картинку в формате bmp 16 бит типа 5-5-5, которая будет просто однотонной
void CreateBmp555 ( char * fname, WORD color )
<
HANDLE hFile ;
DWORD RW ;
int i, j ;
// Объявим нужные структуры
BITMAPFILEHEADER bfh ;
BITMAPINFOHEADER bih ;
BYTE Palette [ 1024 ] ; // Палитра
// Пусть у нас будет картинка размером 35 x 50 пикселей
int Width = 35 ;
int Height = 50 ;
Пример 2. Преобразование картинки из формата 8 бит (256 цветов) в 24 бит.
BOOL Convert256To24 ( char * fin, char * fout )
<
BITMAPFILEHEADER bfh ;
BITMAPINFOHEADER bih ;
int Width, Height ;
RGBQUAD Palette [ 256 ] ;
BYTE * inBuf ;
RGBTRIPLE * outBuf ;
HANDLE hIn, hOut ;
DWORD RW ;
DWORD OffBits ;
int i, j ;
// Выделим память
inBuf = new BYTE [ Width ] ;
outBuf = new RGBTRIPLE [ Width ] ;
// Заполним заголовки
bfh. bfOffBits = sizeof ( bfh ) + sizeof ( bih ) ; // Не будем писать палитру
bih. biBitCount = 24 ;
bfh. bfSize = bfh. bfOffBits + 4 * Width * Height + Height * ( Width % 4 ) ; // Размер файла
delete inBuf ;
delete outBuf ;
CloseHandle ( hIn ) ;
CloseHandle ( hOut ) ;
return TRUE ;
>
В функцию надо передавать имена исходного и конечного файла соответственно.
Источники
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.