BMP формат на данните (растерна графика)

Какво е растерна графика

В днешния урок ще разгледаме първо в начина, по който нашият файлов формат. Различни файлови формати са предназначени за съхраняване на различна информация. Всеки формат определя начин за организиране на данни във файл.







BMP - растерна графика - малко картографиране. Терминът "дисплей" е взета от математика. В математиката, дисплеят е много близо до понятието функция. За простота приемем, че думата растерна графика - това е картина (въпреки че това не е така).

Информация за BMP файл (BMP файл хедър)

Всеки растерни файл има заглавен от 14 байта. Сфера на тази глава:

Да се ​​създаде изображение 100x100 пиксела. Всеки пиксел заема 32 бита. хедър файла ще изглежда така:

Важна забележка: в действителност тези номера се съхраняват като последователност от байтове. Надявам се, че това е разбираемо. Тук (и в този пример), аз ги подредени в колона за по-лесно четене.

Ние ще разберем второто поле. 14 - размера на заглавната част на файла. 40 - изображение размер глава (сняг долу) 100 * 100 - броя на пикселите. А освен това, тъй като ние се съгласихме, че всеки пиксел ще заема 32 бита (4 байта), броят на пикселите, трябва да бъде умножена по четири.

Последният полето: изображението веднага започва веднага след заглавието на файла (14 байта) и картина заглавната част (40 байта).

BMP информация за изображението (глава изображение)

Има няколко версии на BMP. Версията на софтуера може да бъде размера на заглавната част на изображението. Ние ще използваме версията на V3, което е 40 байта Windows. Други версии вземат 12, 64, 108, 124 байта.

В WinAPI BMP съхранение версия на Windows V3 използва BITMAPINFOHEADER структура.

Windows V3 полета в заглавието:

4 байта. размер глава. Тя винаги е настроена на 40 байта.
4 байта. Ширината на изображението в пиксели.
4 байта. Височината на изображението в пиксели.
2 байта. Това поле съдържа винаги единица.
2 байта. Дълбочината на цвят - броят на битовете в пиксел.
4 байта. метод за компресиране.
4 байта. размер. Това уточнява размера на изображението, от само себе си - без да се отчита размера на заглавната си част.
4 байта. Хоризонтална резолюция в пиксели на метър (в брой пиксели на метър).
4 байта. Вертикална резолюция в пиксели на метър (в брой пиксели на метър).






4 байта. Брой цветове в палитрата.
4 байта. Брой на важни цветове в палитрата.

Сега нека да видим как ще изглежда заглавната част на изображението в този случай:

За метода на компресия сме избрали 0 - без компресия. Други стойности са възможни. От интерес: BI_JPEG (стойност - 4) - използван в компресия JPEG изображения и BI_PNG (стойност - 5) - използвани в компресия PNG-картини.

След заглавието е цветовата палитра. Ако това не е налице, веднага след заглавната картинката старт. Снимки с палитри ние няма да бъдат разглеждани.

данни на изображението BMP

Изображението е съставено от пиксели. дълбочината на цвета на пикселите е определен формат (виж по-горе). В нашия пример, ние използвахме 32 бита на пиксел. 32-битов цвят обикновено се състои от четири канала: алфа (прозрачност), червено, зелено, синьо: ARGB (Alpha, червено, зелено, синьо). Понякога алфа канал не се използва в този случай, изображението може все още да заемат 32 бита, прости изчисления не обръщат внимание на стойността на един канал. В този случай, имена на канали са написани, както следва: XRGB.

Всеки канал е 8 бита (1 байт) и може да отнеме 256 стойности от нула до 255 (0x00 да 0xff).

Запаметената BMP изображение ред от дъното нагоре, т.е. Първото записано долния ред, а след това и горната част. Направете го: Изтеглете един от образите от първото упражнение и да запази само половината от линиите на изображението, за да друг файл.

Когато 32-uhbitnoy дълбочина на цвета канали в BMP, написани като: BGRA. Тя е в този ред: синьо, зелено, червено, алфа.

Размерът на низ данни в BMP изображение трябва да е кратна на четири (в байтове). Ако не, низа е подплатени с нули. Това се случва, ако се използва 1,2,4,8,16,24 бита на канал. Например, ние имаме ширината на изображението в пиксели и 3, ние използваме 16-битов цвят. ширина линия: 16 * 3 = 48 (6 байта). Но дължината на низа трябва да бъде кратно на четири, така че добавянето на още два байта, а дължината на линията в този пример е равен на осем байта. Въпреки, че през последните два байта на всеки ред и той няма да бъде съхранявана полезна информация. Необходимо е да се вземе предвид състоянието на множество размер на четири линии, когато се работи с не-32-битови изображения.

Сега prodolzhnim с нашия пример и с помощта създаде изображение код. Всеки пиксел ще се инициализира с произволен цвят:

В резултат на това, кодът в директорията с вашия проект (ако използвате програмата чрез дебъгер (F5)) или в папка Debug на разтвора (ако стартирате изпълнимия .exe файл) ще бъде създаден temp.bmp файл, който може да се отваря във всички prostmotrschike снимки. Изображението се състои от цветни точки.

Последни от дъската

dimaCyberpunk → за развитие на играта: Хрониките на киберпънк
Завършва икони анимационен герой, които можете да направите и други задачи, HTTPS:

IndieCurator → Насърчаване на вашите Парни игри
Господи! Всеки уважаващ себе разработчик \ издател да пусне играта, знае, че без реклами.

proxyan → Service PROXYAN.net - купи надежден прокси сървър, заведения за бързо HTTP / SOCKS
Service PROXYAN.net - Професионална решение за сигурност на сърв мрежа.

mattp → Мотивирани инсталация за Android приложения
AppLead - Mobile Marketing Studio предоставя интегрирана промоция Mobile App.

MaksXXX → Безплатни онлайн слотове
Предимствата на онлайн казина са очевидни за всеки, който някога се е опитвал да играе в интернет.

MaksXXX → Лицензиран онлайн казино
Предимствата на онлайн казина са очевидни за всеки, който някога се е опитвал да играе в интернет.

Нашите приятели