BMP: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
DixonDBot (обговорення | внесок)
м Додавання/виправлення дати для: Шаблон:Без джерел; косметичні зміни
Рядок 15:
== Можливості формату BMP ==
 
У даному форматі можна зберігати тільки одношарові [[растр]]и. На кожен [[піксель]] в різних файлах може приходити різна кількість [[біт]] ([[глибина кольору]]). Microsoft пропонує бітності 1, 2, 4, 8, 16, 24, 32, 48 і 64. В бітності 8 і нижче він вказується [[індекс]]ом з таблиці кольорів (палітри), а при великих: безпосереднім значенням. Колір же в будь-якому випадку можна задати тільки в колірній моделі [[RGB]], але в бітності 16 і 32 можна отримати {{Нп5Не перекладено|Grayscale||ru|Grayscale}} з глибиною до 16 і 32-ох біт відповідно. Часткова прозорість реалізована альфа-каналом різних бітностей, але при цьому прозорість без градацій можна побічно отримати RLE-кодуванням.
 
У більшості випадків пікселі зберігаються у вигляді відносно простого двовимірного [[Масив (структура даних)|масиву]]. Для бітності 4 і 8 доступно [[RLE|RLE-кодування]], яке може зменшити їх розмір. Формат BMP так само підтримує вбудовування даних у форматах [[JPEG]] і [[PNG]]. Але останнє скоріше більше призначене не для компактного зберігання, а для обходу обмежень архітектури [[GDI]], яка не передбачає пряму роботу із зображеннями форматів відмінних від '''BMP'''.
 
В останніх версіях формату '''BMP''' так само з'явилися можливості по управлінню кольором. Зокрема, можна вказувати кінцеві точки, виробляти гамма-корекцію і вбудовувати колірні {{Нп5Не перекладено|ICC-профіль|профілі ICC||ICC profile}}.
 
== Внутрішня будова ВМР ==
Офіційну інформацію по формату BMP можна знайти в [[MSDN]] або в довідці Microsoft Windows SDK (може йти в комплекті з деякими IDE). У файлі <code>[[Graphics Device Interface|wingdi.h]]</code> від компанії Microsoft є всі оголошення мовою [[C++]], які стосуються даного формату. У цей файл не були включені оголошення типів, так як від цього він може бути занадто громіздким. До того ж офіційні оголошення деякі розробники можуть вважати незручними і тому їх необхідність сумнівна. Якщо вам будуть потрібні оригінальні імена [[константа|констант]], [[структура|структур]], [[Тип даних|типів]] та їх полів, то всі вони є в тексті даної статті.
 
Максимальний розмір неподільних комірок (виключаючи поля бітових структур): 32 біта і тому формат можна класифікувати як 32-бітний. Винятком можуть бути 64-бітові пікселі, але значення їх каналів можна обробляти і 16-бітними словами. [[Порядок байтів]] в 16-бітних і 32-бітових комірках усюди від меншого до більшого. Цілі числа записуються в {{Нп5Не перекладено|прямому коді||ru|прямой код}}, зі знаком&nbsp;— в додатковому. Якщо порівнювати з апаратними архітектурами, то порядок байт і формат чисел відповідає архітектурі [[x86]].
 
Можна зустріти чотири числових типа: