Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Описание графического формата BMPСодержание книги Поиск на нашем сайте
BMP - файл растрового изображения, используемый для хранения цифровых растровых изображений отдельно от устройства отображения. Указанный формат файла растрового изображения состоит из структуры BITMAPFILEHEADER, за которой следует структура BITMAPINFOHEADER. Массив структур таблицы цветов следует за структурой заголовка информации о растровом изображении. За таблицей образцов следует второй массив индексов в таблице образцов (фактические данные растрового изображения). Рассмотрим заголовок файла (BITMAPFILEHEADER). Он описан следующим образом: typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER, *PBITMAPFILEHEADER; bfType - определяет тип файла. В случае bmp файлов он должен иметь значение BM bfSize – это размер самого файла в байтах bfReserved1 и bfReserved2 зарезервированы и должны быть нулями. bfOffBits. Это один из самых важных полей в этой структуре. Он показывает, где начинается сам битовый массив относительно начала файла (или, как написано в MSDN, "от начала структуры BITMAPFILEHEADER"), который и описывает картинку.
Структура BITMAPINFO объединяет структуру BITMAPINFOHEADER и таблицу цветов, чтобы обеспечить полное определение размеров и цветов точечного изображения. Таблица цветового индекса связывает цвет в виде индекса со структурой RGBGUAD, где каждый пиксель точечного рисунка. Индекс RGBGUAD для цвета самого левого пикселя является первыми n битами в массиве цветового индекса (где n — число битов, необходимое для указания всех структур rgbguad). Цвет следующего пикселя справа — это следующие n бит в массиве и т. д. Рассмотрим структуру BITMAPINFOHEADER, которая объявлена так: typedef struct tagBITMAPINFOHEADER { DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER, *PBITMAPINFOHEADER; biSize - это размер самой структуры biWidth - ширина растрового изображения в пикселях biHeight - высота растрового изображения в пикселях biPlanes - количество плоскостей для целевого устройства (данное значение должно быть равно 1) biBitCount - оличество бит на один пиксель. Элемент biBitCount определяет количество битов, определяющих каждый пиксель, и максимальное количество цветов в растровом изображении. Этот элемент должен быть одним из следующих значений.
Таблица 1 Количество бит на один пиксель
biCompression - тип сжатия для сжатого растрового изображения. Этот элемент может иметь одно из следующих значений. Таблица 2 Значения параметра biCompression
biSizeImage - размер изображения в байтах. Для растровых изображений BI_RGB это значение может быть равно нулю. Если biCompression принимает значение BI_JPEG или BI_PNG, то biSizeImage указывает размер буфера изображений JPEG или PNG соответственно. biXPelsPerMeter - горизонтальное разрешение, в пикселях на метр, целевого устройства для растрового изображения. Приложение может использовать это значение для выбора растрового изображения из группы ресурсов, которое наилучшим образом соответствует характеристикам текущего устройства.biYPelsPerMeter - вертикальное разрешение, в пикселях на метр, целевого устройства для растрового изображения. biClrUsed - число индексов цвета в таблице цветов, фактически используемых растровым изображением. Если это значение равно нулю, то битовая карта использует максимальное количество цветов, которые соответствуют значению biBitCount для режима сжатия, указанного в bicompression. Если biClrUsed отличен от нуля и biBitCount меньше 16, biClrUsed - принимает фактическое количество цветов, к которым обращается графический механизм или драйвер устройства. Если biBitCount равно 16 или больше, biClrUsed указывает размер таблицы цветов, используемой для оптимизации производительности системных цветовых палитр. Если значение biBitCount равно 16 или 32, оптимальная цветовая гамма начинается сразу после трех масок битовых слов.biClrImportant - количество цветовых индексов, необходимых для отображения растрового изображения. Если это значение равно нулю, требуются все цвета[1].
Метод наименьшего значащего бита (LSB)
Суть метода преобразования наименьшего значащего бита (LSB) заключается в том, чтобы скрыть информацию путем преобразования последних битов изображения с цветовым кодированием в биты скрытого сообщения. Принцип работы стеганографического метода заключается в следующем. Как описано ранее, в формате BMP изображение сохраняется как матрица значений цветового тона для каждой точки захваченного изображения. Если каждый компонент пространства RGB (также называемый цветовыми каналами) хранится в одном байте, он может принимать значения от 0 до 255 включительно, что соответствует 24-битной глубине цвета. Допустим, имеется 24-битное изображение. Пиксель кодируется 3 байтами и содержит значения канала RGB. Изменяя младший бит, мы меняем значение байта на единицу. Особенность человеческого зрения в том, что оно плохо распознает мелкие цветовые колебания. В случае 24-битного цвета изменение в каждом из трех каналов наименее значимого бита (то есть самого правого бита) приводит к изменению менее чем на 1% интенсивности этой точки[2].
|
|||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-07-19; просмотров: 88; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.72.220 (0.007 с.) |