Відмінності між версіями «Обробка зображень лабораторна 2 Лисков Сергій»
(Створена сторінка: ~~~~) |
|||
Рядок 1: | Рядок 1: | ||
− | + | Тема: Графічні формати | |
+ | |||
+ | Мета: Вивчення форматів графічних файлів | ||
+ | |||
+ | == .BMP == | ||
+ | |||
+ | Формат bmp (від слів BitMaP - бітова карта, або бітовий масив) представляє нестиснене (в основному) зображення, яке досить легко читається і виводиться в ОС Windows, в якій є спеціальні функції API, які в цьому допомагають. | ||
+ | Графічне представлення даних в bmp (картинка взята з MSDN): | ||
+ | |||
+ | <center> | ||
+ | [[Файл:Struct.gif|структура]] | ||
+ | </center> | ||
+ | |||
+ | На початку є заголовок файлу (BITMAPFILEHEADER). Він описаний наступним чином: | ||
+ | |||
+ | typedef struct tagBITMAPFILEHEADER | ||
+ | { | ||
+ | WORD bfType; | ||
+ | DWORD bfSize; | ||
+ | WORD bfReserved1; | ||
+ | WORD bfReserved2; | ||
+ | DWORD bfOffBits; | ||
+ | } BITMAPFILEHEADER, *PBITMAPFILEHEADER; | ||
+ | |||
+ | А далі йде структура 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; | ||
+ | |||
+ | === Види формата BMP === | ||
+ | |||
+ | Всі різновиди формату bmp умовно можна розділити на два типи: палітрові і безпалітрові. Тобто використовується в даному форматі палітра або ні. В безпалітрових bmp колір вираховується прямо з тих бітів, які йдуть в файлі, починаючи з деякого місця. А в палітрових кожен байт описує один або кілька пікселів, причому значення байта (або бітів) - це індекс кольору в палітрі. | ||
+ | |||
+ | Вид зображення (палітрова або безпалітрова) залежить від того, скільки біт віддається на один піксель, тобто від значення biBitCount структури BITMAPINFOHEADER. | ||
+ | |||
+ | <center> | ||
+ | <table border="1" style=""> | ||
+ | <tr> | ||
+ | <td align='center'>biBitCount</td> | ||
+ | <td align='center'>Палітровий чи безпалітровий формат</td> | ||
+ | <td align='center'>Максимально можлива кількість кольорів</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr > | ||
+ | <td align='center'>1</td> | ||
+ | <td align='center'>Палітровий</td> | ||
+ | <td align='center'>2</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr > | ||
+ | <td align='center'>4</td> | ||
+ | <td align='center'>Палітровий</td> | ||
+ | <td align='center'>16</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr > | ||
+ | <td align='center'>8</td> | ||
+ | <td align='center'>Палітровий</td> | ||
+ | <td align='center'>256</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr > | ||
+ | <td align='center'>24</td> | ||
+ | <td align='center'>Безпалітровий</td> | ||
+ | <td align='center'>2^24</td> | ||
+ | </tr> | ||
+ | |||
+ | <tr > | ||
+ | <td align='center'>32</td> | ||
+ | <td align='center'>Безпалітровий</td> | ||
+ | <td align='center'>2^32</td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | </center> | ||
+ | |||
+ | == .JPG == | ||
+ | |||
+ | JPG - це растровий формат, висока ступінь стиснення в якому досягається за рахунок втрати якості зображення. | ||
+ | Стиснення зображення здійснюється в два етапи: | ||
+ | 1. Зображення розбивається на області і усереднюється в тій чи іншій мірі в залежності від параметра Quality, чим нижче значення цього параметра, тим сильніше буде усереднено зображення. | ||
+ | 2. Усереднене зображення компресується за алгоритмом, близькому до LZV-компресії в TIF-форматі. |
Версія за 13:42, 25 лютого 2016
Тема: Графічні формати
Мета: Вивчення форматів графічних файлів
.BMP
Формат bmp (від слів BitMaP - бітова карта, або бітовий масив) представляє нестиснене (в основному) зображення, яке досить легко читається і виводиться в ОС Windows, в якій є спеціальні функції API, які в цьому допомагають. Графічне представлення даних в bmp (картинка взята з MSDN):
На початку є заголовок файлу (BITMAPFILEHEADER). Він описаний наступним чином:
typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER, *PBITMAPFILEHEADER;
А далі йде структура 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;
Види формата BMP
Всі різновиди формату bmp умовно можна розділити на два типи: палітрові і безпалітрові. Тобто використовується в даному форматі палітра або ні. В безпалітрових bmp колір вираховується прямо з тих бітів, які йдуть в файлі, починаючи з деякого місця. А в палітрових кожен байт описує один або кілька пікселів, причому значення байта (або бітів) - це індекс кольору в палітрі.
Вид зображення (палітрова або безпалітрова) залежить від того, скільки біт віддається на один піксель, тобто від значення biBitCount структури BITMAPINFOHEADER.
biBitCount | Палітровий чи безпалітровий формат | Максимально можлива кількість кольорів |
1 | Палітровий | 2 |
4 | Палітровий | 16 |
8 | Палітровий | 256 |
24 | Безпалітровий | 2^24 |
32 | Безпалітровий | 2^32 |
.JPG
JPG - це растровий формат, висока ступінь стиснення в якому досягається за рахунок втрати якості зображення. Стиснення зображення здійснюється в два етапи: 1. Зображення розбивається на області і усереднюється в тій чи іншій мірі в залежності від параметра Quality, чим нижче значення цього параметра, тим сильніше буде усереднено зображення. 2. Усереднене зображення компресується за алгоритмом, близькому до LZV-компресії в TIF-форматі.