Зберігання графіки в windows - студопедія

Сама довжина заголовка постійна.

2. Він описує параметри зображення. Має змінну довжину. Має змінну довжину.

Запис 1. Довжина 4 байта. Довжина цієї частини в байтах.

Запис 2. Довжина 4 байта. Ширина малюнка в пікселах.

Запис 3. Довжина 4 байта. Висота малюнка в пікселах.

Запис 4. Довжина 2 байта. Ознака розбиття на бітові площини.

Запис 5. Довжина 2 байта. Кількість біт на піксель.

Запис 6. Кодується тип стиснення даних.

Запис 7. Довжина 4 байта. Розмір зображення в байтах.

Запис 8. Дозвіл по горизонталі в пікселях.

Запис 9. Дозвіл по вертикалі в пікселах.

Запис 10. Кількість використовуваних квітів і запис кількості основних типів.

Наступний запис буде починатися зі зміщення 36h. Починаючи з цього запису описується палітри. Кількість квітів у полі зі зсувом 2Eh (позначимо n), тоді довжина 4 × n.

Перший байт - інтенсивність синього.

Другий байт - інтенсивність зеленого.

Третій байт - інтенсивність червоного.

Четвертий байт - резервний, заповнений нулями.

У цій палітрі можна використовувати не всі записи. Ті, які відносяться до даного зображенню повинна бути на початку запису. Така структура прискорює обробку зображення.

3. Саме зображення. Розбите на рядки і стовпці.

Перше обмеження - розриви рядків не допускаються. Якщо рядок в зображенні не бере, то її потрібно заповнити нулями.

Друге нестандартне - то, що зберігається воно з лівого нижнього кута через підрядник.

Метод стиснення RLE4 або RLE8. Повністю відповідають раніше розглянутому. Поле зі зміщенням 1Сh задає кількість біт на піксель. У ньому запсіани стандартні цифри.

1) Якщо записана 1, то це чорно-біле зображення. Тоді 1 - заповнення першим кольором палітри, а 0 - заповнення другим кольором палітри.

2) Якщо записана 4, то це 16-кольорове зображення. У палітрі реальне опис складається з 16 полів по 4 байта. Щоб скоротити кількість порожніх заповнень нулями, то кожен байт записи палітри трактується наступним чином:

Одна запис - це запис двох точок, причому старші полбайта належать далекій точці, а молодші полбайта належать до першої точки.

2 - колір записаний другим в палітрі і належить він до другої точки.

5 - колір записаний п'ятим в палітрі і належить до першої точки.

3) Якщо записано 8, то використовується 256 квітів. Використаний 1 байт на точку. Палітра складається з 256 записів, кожне поле по 4 байта.

4) Якщо записано 24, то 16777216 кольорів. Щоб записати таку палітру, треба багато пам'яті, але надходять по іншому. палітра кодується в області даних. До резервного байт вводять інтенсивність. При цьому довжина запису практично не збільшується.

Стиснення. Там, де використано стиснення:

0 - не упаковано.

Таким чином зберігаються будь-якої складності растрові малюнки. Автоматичного стиснення ні Windows, ні Paint Brush не виробляють. Щоб використовувати стиснення, треба використовувати спеціальні команди при збереженні файлу. Ламери зберігають малюнки BMP неупакованими.

Графіка ще зберігається в специфічних форматах. Стартові заставки зберігаються в форматі RLE. За своєю суттю нічим не відрізняється від формату BMP зі стисненням RLE4, так як для заставок не потрібно більшу кількість кольорів. Формуються в такий формат програмою WinGIF.

Схожі статті