|
|
Рядок 2: |
Рядок 2: |
| ==Лабораторна робота 2== | | ==Лабораторна робота 2== |
| ===BMP=== | | ===BMP=== |
− | BMP (Bitmap) — bitmap-формат або DIB (англ. device independent bitmap)-формат файлу зображень растрової графіки, в якому зображення зберігається у вигляді двовимірного масиву пікселів. запам'ятовує одно і багатокольорові (RGB) ілюстрації у формі Pixel. BMP-формат використовується в операційній системи Windows та OS/2. Дані цього формату включаються в двійкові файли ресурсів RES і в PE-файли. | + | BMP (Bitmap)-формат файлу зображень растрової графіки, в якому зображення зберігається у вигляді двовимірного масиву пікселів. BMP це стандартний не стиснений бітовий графічний формат, запам'ятовує одно і багатокольорові (RGB) ілюстрації у формі Pixel. BMP-формат використовується в операційній системи Windows та OS/2. Дані цього формату включаються в двійкові файли ресурсів RES і в PE-файли. |
| | | |
− | Формат файлу BMP здатний зберігати 2D цифрові зображення довільної ширини, висоти та роздільної здатності, як монохромні так і кольорові, різної глибини кольору, і, необов'язково, зі стисненням данних, альфа-каналом та керуванням кольору. Специфікація Windows Metafile (WMF) охоплює формат файлу BMP. Серед іншого, wingdi.h визначає BMP-константи та структури. | + | Формат файлу BMP здатний зберігати 2D цифрові зображення довільної ширини, висоти та роздільної здатності, як монохромні так і кольорові, різної глибини кольору, і, необов'язково, зі стисненням даних, альфа-каналом та керуванням кольору. Специфікація Windows Metafile (WMF) охоплює формат файлу BMP. Серед іншого, wingdi.h визначає BMP-константи та структури. |
| | | |
| + | '''Можливості формату BMP''' |
| | | |
| + | У даному форматі можна зберігати тільки одношарові растри. На кожен піксель в різних файлах може приходити різна кількість біт (глибина кольору). |
| + | У більшості випадків пікселі зберігаються у вигляді відносно простого двовимірного масиву. |
| | | |
− | Можливості формату BMP
| + | BMP-файли складаються з трьох основних частин: |
− | | + | |
− | У даному форматі можна зберігати тільки одношарові растри. На кожен піксель в різних файлах може приходити різна кількість біт (глибина кольору). Microsoft пропонує бітності 1, 2, 4, 8, 16, 24, 32, 48 і 64. В бітності 8 і нижче він вказується індексом з таблиці кольорів (палітри), а при великих: безпосереднім значенням. Колір же в будь-якому випадку можна задати тільки в колірній моделі RGB, але в бітності 16 і 32 можна отримати Grayscale[ru] з глибиною до 16 і 32-ох біт відповідно. Часткова прозорість реалізована альфа-каналом різних бітностей, але при цьому прозорість без градацій можна побічно отримати RLE-кодуванням.
| + | |
− | | + | |
− | У більшості випадків пікселі зберігаються у вигляді відносно простого двовимірного масиву. Для бітності 4 і 8 доступно RLE-кодування, яке може зменшити їх розмір. Формат BMP так само підтримує вбудовування даних у форматах JPEG і PNG. Але останнє скоріше більше призначене не для компактного зберігання, а для обходу обмежень архітектури GDI, яка не передбачає пряму роботу із зображеннями форматів відмінних від BMP.
| + | |
− | | + | |
− | В останніх версіях формату BMP так само з'явилися можливості по управлінню кольором. Зокрема, можна вказувати кінцеві точки, виробляти гамма-корекцію і вбудовувати колірні профілі ICC[en].
| + | |
− | | + | |
− | | + | |
− | Внутрішня будова ВМР
| + | |
− | | + | |
− | Офіційну інформацію по формату BMP можна знайти в MSDN або в довідці Microsoft Windows SDK (може йти в комплекті з деякими IDE). У файлі wingdi.h від компанії Microsoft є всі оголошення мовою C++, які стосуються даного формату. У цей файл не були включені оголошення типів, так як від цього він може бути занадто громіздким. До того ж офіційні оголошення деякі розробники можуть вважати незручними і тому їх необхідність сумнівна. Якщо вам будуть потрібні оригінальні імена констант, структур, типів та їх полів, то всі вони є в тексті даної статті.
| + | |
− | | + | |
− | Максимальний розмір неподільних комірок (виключаючи поля бітових структур): 32 біта і тому формат можна класифікувати як 32-бітний. Винятком можуть бути 64-бітові пікселі, але значення їх каналів можна обробляти і 16-бітними словами. Порядок байтів в 16-бітних і 32-бітових комірках усюди від меншого до більшого. Цілі числа записуються в прямому коді[ru], зі знаком — в додатковому. Якщо порівнювати з апаратними архітектурами, то порядок байт і формат чисел відповідає архітектурі x86.
| + | |
− | | + | |
− | Можна зустріти чотири числових типа:
| + | |
− | | + | |
− | BYTE — 8-бітове беззнаковое ціле.
| + | |
− | WORD —16-бітове беззнаковое ціле.
| + | |
− | DWORD — 32-бітове беззнаковое ціле.
| + | |
− | | + | |
− | LONG —32-бітове ціле зі знаком.
| + | |
− | | + | |
− | У форматі Windows Bitmap під структурами розуміється блок з послідовними комірками різного фіксованого розміру, у яких є умовні імена (є в багатьох мовах програмування), а не щось складніше (наприклад, потік команд довільного розміру).
| + | |
− | | + | |
− | У деяких елементів формату вказана версія Windows, починаючи з якої він підтримується. Мова йде в першу чергу про основні бібліотеки WinAPI такі як gdi32.dll, shell32.dll, user32.dll і kernel32.dll. Інші компоненти операційної системи (наприклад, GDI+,. NET, DirectX) можуть мати інші більш широкі можливості.
| + | |
− | | + | |
− | | + | |
− | | + | |
− | Расширение BMP обычно используется для хранения растровых изображений. .BMP – это стандартный, не сжатый битовый графический формат, используемый в Windows. BMP файл хранить графику в формате, который называется аппаратно-независимый растр (DIB от англ. Device Independent Bitmap). Файл .BMP состоит из заголовка файла (растровый идентификатор, размер файла, ширина, высота, варианты цвета, и растровые данные начальной точки), заголовка изображения (может отсутствовать), палитры (может отсутствовать) и самого изображения.
| + | |
− | | + | |
− | Битмапы, которые также называются растровыми изображениями, используют сетку (битовую карту или растровую) малых квадратов, которые известны, как пиксели, для представления изображений. Для каждого пикселя отводится определенное место и значение цвета. Файлы BMP могут содержать различные уровни глубины цвета на пиксель, в зависимости от количества битов на пиксель, указанной в заголовке файла. Они также могут храниться с использованием оттенков серого цветов.
| + | |
− | | + | |
− | Формат BMP-файлов
| + | |
− | | + | |
− | BMP — стандартный формат графических файлов Windows. Подавляющее большинство BMP-файлов хранится без сжатия, что облегчает работу с ними.
| + | |
− | | + | |
− | BMP-файлы состоят из трех основных частей:
| + | |
− | | + | |
| заголовок; | | заголовок; |
− | палитра; | + | палітра; |
− | графические данные (значения пикселей). | + | графічні дані. |
− | | + | |
− | Заголовок содержит информацию о файле и находящемся в нем графическом изображении. Здесь хранятся параметры изображения (ширина, высота, глубина пикселей), а также количество цветов в нем.
| + | |
− | | + | |
− | Палитра присутствует только в BMP-файлах, содержащих палитровые изображения (с глубиной пикселей 8 бит и менее).
| + | |
− | | + | |
− | Графические данные — это и есть само изображение. Формат этих данных зависит от глубины пикселей.
| + | |
− | | + | |
− | Элемент палитры представляет собой четырёхбайтовую запись (структуру). В этой структуре хранятся составляющие R-красного, G-зеленого и B-синего цветов. Один байт зарезервирован. Палитра может и не использоваться, например в True Color.
| + | |
− | Структура элемента палитры:
| + | |
| | | |
− | typedef struct tagRGBQUAD
| |
− | {
| |
− | char rgbBlue;
| |
− | char rgbGreen;
| |
− | char rgbRed;
| |
− | char rgbReserved;
| |
− | } RGBQUAD;
| |
| ===JPG=== | | ===JPG=== |
| | | |
BMP (Bitmap)-формат файлу зображень растрової графіки, в якому зображення зберігається у вигляді двовимірного масиву пікселів. BMP це стандартний не стиснений бітовий графічний формат, запам'ятовує одно і багатокольорові (RGB) ілюстрації у формі Pixel. BMP-формат використовується в операційній системи Windows та OS/2. Дані цього формату включаються в двійкові файли ресурсів RES і в PE-файли.
Формат файлу BMP здатний зберігати 2D цифрові зображення довільної ширини, висоти та роздільної здатності, як монохромні так і кольорові, різної глибини кольору, і, необов'язково, зі стисненням даних, альфа-каналом та керуванням кольору. Специфікація Windows Metafile (WMF) охоплює формат файлу BMP. Серед іншого, wingdi.h визначає BMP-константи та структури.
У даному форматі можна зберігати тільки одношарові растри. На кожен піксель в різних файлах може приходити різна кількість біт (глибина кольору).
У більшості випадків пікселі зберігаються у вигляді відносно простого двовимірного масиву.