Что такое bmp тип данных

Обзор формата BMP

В этом разделе содержатся сведения о коде встроенного BMP, доступном через компонент Windows Imaging Component (WIC).

Удостоверение кодека

В следующей таблице приведены сведения об идентификации кодека.

КомпонентОписание
Формальные именаФормат точечных рисунков Windows
Расширения имени файлаBMP, DIB
тип MIMEimage/bmp
Поддержка спецификацийСпецификация BMP V5

В следующей таблице перечислены идентификаторы GUID, используемые для распознавания встроенных компонентов кодека BMP.

КомпонентПонятное имяКод GUID
Формат контейнераGUID _ контаинерформатбмп0af1d87e-фкфе-4188-bdeba7906471cbe3
Показан_ВИКБМПДЕКОДЕР CLSID6b462062-7cbf-400d-9fdb813dd10f2778
Кодировщик_ВИКБМПЕНКОДЕР CLSID69be8bb4-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 выглядят следующим образом от начала до конца:

Ниже приводится подробное введение через следующие рисунки:

Часть информации об изображении выглядит следующим образом:

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

2. заголовок файла bmp

Заголовок файла bmp содержит следующую информацию:

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

индекссинийзеленыйкрасныйAlpha
001103700
100104900
200184400
3011D5800

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

Тогда размер растровых данных:

В этом случае после сканирования строки данных последние несколько байтов могут быть заполнены 0, и их необходимо пропустить:

Интеллектуальная рекомендация

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

Как сделать ваши данные PPT из Python?

Нажмите на «Программирование«Выберите набор наУстановить как звездный стандарт” Качественные статьи, впервые доставка! Автор: Костас Андреу Компиляция сердца машины Участие: Джамин, Ч.

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

Jquery plugin orgchart для достижения приема дисплея многократной структуры деревьев

Требования: передняя стойка реализует графическое отображение нескольких узлов деревьев, а некоторая информация сохраняется на узле для формирования серии JSON к обрабатыванию фона. &nbs.

Использование динамических разрешений и анализ исходного кода RxPermissions

Основное использование После Android 6.0 была добавлена ​​динамическая конфигурация разрешений. Цель состоит в том, что пользователи могут свободно выбирать, предоставлять ли разрешения приложения. Да.

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

Анализ исходного кода Dubbo (11) Обменник Dubbo

Посмотри сначалаExchangerОпределение интерфейсаbindс участиемconnect ,bindОн вызывается сервером и связывает порт для приема запросов от клиента.connectЭто как клиент для подключения к серверу и обмен.

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

Разница между формальными параметрами и фактическими параметрами в Java

1. Используйте в функции: Формальный параметр появляется в определении функции и может использоваться во всем теле функции, но не может использоваться вне функции. Фактический параметр появляется в ос.

Источник

jenyay.net

Софт, исходники и фото

Описание формата BMP

Эта статья про то, как выглядит графический формат bmp. Хоть это и один из простых форматов, но из-за того, что существует много вариаций этого формата, то не все моменты очевидны. Итак, хватит лить воду, начнем.

Структуры формата

Для начала приведем графическое представление данных в bmp (картинка взята из MSDN).

Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

В начале стоит заголовок файла (BITMAPFILEHEADER). Он описан следующим образом:

Здесь и далее будем считать, что переменная bfh объявлена как BITMAPFILEHEADER bfh;

А дальше идет структура BITMAPINFOHEADER, которая объявлена так:

Виды формата BMP

Хранение данных в формате bmp

Сразу за палитрой идет сам растр. Тут уже более запутано. Во-первых, пиксели тут описываются так, как написано в таблице выше в зависимости от формата. И могут сами содержать значение компонентов цвета (для беспалитровых), а могут быть индексами массива-палитры. Сама картинка записывается построчно. Во-вторых, картинка идет как бы перевернутая вверх ногами. То есть сначала записана нижняя строка, потом предпоследняя и так далее до самого верха. И, в-третьих, как написано в [1], если размер строки растра не кратен 4, то она дополняется от 1 до 3 пустыми (нулевыми) байтами, чтобы длина строки оказалась кратна параграфу. Вот это и есть самое неприятное. Дело в том, что для каждого формата приходится подстраивать это число пустых байтов (правда, я люблю туда записывать часть палитры, просто мне не хочется заводить лишние «нулевые» переменные, если все-равно эти байты пропускают и никому они не нужны). Я привожу таблицу с формулами, которые показывают для какого формата сколько байт надо дописывать в конец строки. Там под переменной Width, как можно догадаться, подразумевается ширина картинки. Все эти формулы были установлены экспериментально. Я приведу пример только для наиболее используемых форматов. Для остальных вы можете написать сами.

biBitCountФормула на С
8(3 * Width) % 4
16(2 * Width) % 4
24Width % 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.
Что такое bmp тип данных. Смотреть фото Что такое bmp тип данных. Смотреть картинку Что такое bmp тип данных. Картинка про Что такое bmp тип данных. Фото Что такое bmp тип данных

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *