Відмінності між версіями «Обробка зображень лабораторна 2 Лисков Сергій»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Створена сторінка: ~~~~)
 
Рядок 1: Рядок 1:
[[Користувач:Лисков Сергій|Лисков Сергій]] ([[Обговорення користувача:Лисков Сергій|обговорення]]) 12:50, 25 лютого 2016 (EET)
+
Тема: Графічні формати
 +
 
 +
Мета: Вивчення форматів графічних файлів
 +
 
 +
== .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-форматі.