ПредишенСледващото

Гледайки през твърдия диск на един типичен компютър, почти със сигурност ще намерите много файлове с разширения BMP, PCX и. По всяка вероятност, тези файлове съдържат растерни графики. Това е само две членове на голямото семейство на графични файлови формати, използвани на компютрите. Всеки един от тези формати в различни магазини графична информация, и всеки един от тях, предназначени за специфични цели.

Удължаване на името на файла, показва, че информацията се съхранява във всякакъв формат. Например, разширението BMP означава BMP-файл се поддържа от Windows и OS / 2 (BMP - намаляване на растерна графика, т.е. малко, растерна графика) системи. BMP формат на файла - това е "роден" формат растерни графики за Windows, тъй като тя е най-близък на вътрешния формат на Windows, които системата поддържа своите растерни масиви.

PCX формат е първият стандарт файлът с изображение за съхраняване на растерни графични файлове в компютрите на IBM PC. PCX формат първоначално е бил изобретен за съхранение на черно-бели графични файлове, създадени от по-стара версия на програмата PC Paintbrush оцветяване. Този формат в началото на 80-те години. от Microsoft получили лиценз, а след това е бил раздаден с продукти на Microsoft. В бъдеще, форматът е превърната в WindowsPaintbrush и започна да се разпространява с Windows. Въпреки, че в обхвата на този популярен формат е намалена, файлове PCX формат, които са лесни за да се научат да се разшири PCX, са все още широко се използва и днес.

Файловете с растерни обикновено се използват един от двата метода за съхраняване на данни за пикселите. В пълноцветен пикселни изображения могат да вземат някой от повече от 16 милиони данни и затова цвета на пиксела обикновено се съхранява като 24-битова стойност - 8 бита за червен, зелен и син цвят компоненти. Ако изображението съдържа 1 милион пиксела, размерът на файла е равна на 3 милиона байта плюс дължината на не-графични данни. Ако изображението е ограничена до 256 цвята или по-малко, цветовата информация обикновено се кодира с помощта на палитрата. Вместо съхраняване на стойността на цвета на пикселите на информацията за пиксел показва линия в палитрата, а тя, от своя страна, съдържа цвета. С намаляването на броя на битовете, необходими за представяне на цвета на пикселите, намалява размера на файла (което е по всяко време ценно предимство, тъй като пространството на паметта не е безплатно).

Като пример, да изображението на милион пиксела, съдържащ 256 различни цветове. Цветно обозначение на всеки пиксел 24-битова стойност за претоварен разточително съкращения, тъй като някои (или може би всички) от 256 цвята се повтарят няколко пъти. За да съхраните цветовете, използвани във файла е по-добре да се разпределят 768 байта в цветова палитра от 256 полета на 24 бита, всяко поле съдържа един от цветовете, намерени в изображението. Тогава цветова стойност пиксел може да се разпредели 8 бита, че е цяло число от 0 до 255, което показва броя на цветовете в палитрата. Сега за графичната част е достатъчно 1,000,768 байта файла срещу бивши 3000000 байта, необходими за съхранение на изображението, без да използвате палитрата. И дори с допълнителните байтове на не-графична част на файла, ние все още се получи намаляване на размера на файла на почти две трети.

В повечето графични файлови формати пиксела са подредени ред по ред. Ако размерът на изображението е 1000 от 1000 пиксела, а всеки пиксел е представена от 8 бита, първите 1000 байта на графичната част на файла, съдържащ пикселите цветен образ от най-горния ред (от ляво на дясно), следващите 1000 байта съдържат цветни пикселите на втория ред и така нататък. Въпреки това, в някои формати, различен ред от редовете. Например, BMP файлове започват с най-долния ред и горен край линията на изображението. Всеки графичен формат и неграфична данни е структурирано относно.

PCX файлове са разделени в следните три части: заглавна PCX, масив растерни данни и възможност за цвят масата. 128 байта глава PCX съдържа няколко области, включително областта на размер на изображението и броя на битовете за кодиране на информацията, цвят на всеки пиксел. Информация растерни масив се пресова, като се използва прост метод за компресиране УПИ; по избор цвят на маса в края на файла съдържа 256 RGB цветови стойности, които определят цвета на изображението. PCX формат първоначално е бил предназначен за адаптери CGA- и EGA-показва и по-късно е модифицирана за използване в адаптери VGA адаптери и естествени цветове. Кодиране на всеки пиксел в настоящите цвят PCX изображенията могат да бъдат произведени с дълбочина от 1, 4, 8 или 24 бита.

FaylaPCX глава (128 байта)

  1. PCX файл подпис (1 байт) - Постоянна флаг 10 - ZSoft .PCX
  2. Версия. (1 байт) - (0 - Version 2.5, 2 - версия 2.8 информация за палитрата 3 - версия 2.8 без информация палитра, 5 - версия 3.0).
  3. Кодиране на стоките. (1 байт) - (1 - кодиране дълга поредица).
  4. Bit / пиксел (1 байт) - Броят на бита на пиксел в слоя.
  5. Xmin (2 байта) - ъгловите координати на изображението.
  6. Ymin (2 байта) - ъгловите координати на изображението.
  7. Xmax (2 байта) - ъгловите координати на изображението.
  8. Ymax (2 байта) - ъгловите координати на изображението.
  9. апарат Хоризонтална разделителна създаване (2 байта).
  10. апарат Вертикална разделителна създаване (2 байта).
  11. Задайте цветовата палитра (48 байта).
  12. Не се използва (1 байт). Запазени.
  13. Броят на цветни слоеве (1 байт).
  14. Броят на байта на ред в цвят слой (2 байта).
  15. информация палетата (2 байта) - (1 = цвят / черно-бяло, сиво = 2).
  16. Не се използва (58 байта). Изпълнен с нули в края на заглавието.

Задайте цветовата палитра.

Информация палитра се съхранява в една от четирите формати. За режим CGA, само първия и четвъртия байта на панела с глава. Първият байт представлява цвета на фона - го разделя от 16 получи стойността от 0 до 15. Четвъртият байт представлява цвета на преден план. Броят на палети CGA е 8, така че разделение от 32 до получаване на стойност в диапазона 0-7.

За EGA режим, данните се съхраняват в рамките на 16 с "тройки". Тройка - 3-байт набор от ценности на червени, зелени и сини цветове. Тъй като всяка стойност варира от 0 до 255, което трябва да се покаже на тези стойности в един от четирите възможни Урс-то за всеки цвят. Следователно, 256, разделена на 4 е 64, така че 0 до ниво 63 = 0, С = 64-127 ниво 1, и така га Следващ. EGA адаптер система BIOS очаква 00RGBrgb байт формат за kazhogo палитра регистър. Нейните четири възможни стойности за Bb са 00, 01, 10 и 11. Когато е определено ниво за всеки цвят, да ги комбинирате в един байт, който е съвместим с BIOS (основна система ми-IO).

За 16-цветови режима VGA, палитра отново се съхранява в "тройна-Ка". За да се превърне в съвместим BIOS формат, плъзнете всеки байт в дясно от два бита. Това преобразуване се извършва автоматично от функция или функция pcxGetFilePalette pcxDecodePalette.

За достъп до 256-цветовата палитра следва: Прочетете полето за заглавие на версиите. Ако тя е 5, палитрата трябва да бъде. Или прочетете поле с глава, броят на бита на пиксел. Ако тя е 8, 256-цветна палитра трябва byt.Prochitat край на файл и да брои обратно 769 байта. сте намерили стойност трябва да е равно на 12, което показва наличието на 256-цветна палитра.

Останалата част от файла с изображение се състои от кодирани данни с изображения. Когато кодиране използва прост алгоритъм, базиран на метода на дълга поредица. Ако файлът се съхранява няколко цветни слоя, всеки ред на изображението се съхранява в цветни слоеве (обикновено червено-R, зелено-G, синьо-B слой и интензитет-I)

метод на кодиране е както следва:

Ако и двата бита на X са 1,

<повторитель> = 6-малко значими бита X

<данные> = Следващия байт на X

След насищане на този алгоритъм изисква средно от 25% не-повтарящи данни и поне присъствието на отклонението между многократните данни, тогава размерът на файла обикновено е приемливо.

Image File Format - BMP се използва широко в Windows и OS / 2 системи. По-специално, ние считаме за BMP-файл, описващ размер на 256-цветен образ от 1000 до 1000 пиксела. (Форматът на BMP-файл е малко по-различно в зависимост от това колко цветове на изображението съдържа -. 2, 16, 256, или 16,7 милиона BMP формат в Windows и OS / 2 е малко по-различно от описанието на файла ще съответства на версията на BMP за Windows ..) BMP цвят файл информация на всеки пиксел се кодиран 1, 4, 8, 16, или 24 бита (бита / пиксел). Броят на битовете / пиксел, наричано още дълбочина на цвета, определя максималния брой на цветове в изображението. Изображение на дълбочина 1 бит / пиксел може да има само два цвята, както и на дълбочина от 24 бита / пиксел. - Повече от 16 милиона различни цветове.

Файлът се състои от четири основни части: 14-байт хедър файлове, информация за 40-байт хедър, цвят маса 1024 байта и един милион байта за пикселни стойности. (Под таблицата с цветове разпределени 1024 байта, а не 768, тъй като всяко поле 24-битов добавя към друга маса, неизползваните байтове).

Структура formataBMP графичен файл.

1. Заглавие на растерни графики файл (14 байта)

1.1. BMP файл подпис (2 байта)

1.2. Размерът на файла (4 байта)

1.3. Не се използва (2 байта)

1.4. Не се използва (2 байта)

1.5. Местоположение масив растерни данни (4 байта)

2. Информация глава растер масив (40 байта)

2.1. Дължината на заглавната част (4 байта)

2.2. ширина на изображението (4 байта)

2.3. Височина на изображението (4 байта)

2.4. Броят на цветни самолети (2 байта)

2.5. Bit / пиксела (2 байта)

2.6. метод за компресиране (4 байта)

2.7. Дължината на растерни масив (4 байта)

2.8. Хоризонтална разделителна способност (4 байта)

2.9. Вертикална разделителна способност (4 байта)

2.10. Броят на цветовете на изображението (4 байта)

2.11. Броят на основните цветове (4 байта)

3. Таблицата цвят (дължина варира 8-1024 байта)

4. Всъщност растер масив данни (променлива дължина)

1. Първите 14 байта на BMP-файл на титлата си. заглавната част на файла съдържа следните три стойности: буквите BM, които ни казват, че файла с изображение има номера формат BMP, което означава, размера на файла и номера, което показва, където данните за растерни. Последният брой е броят на байтове, считано от началото на файла. Още две полета в заглавната част на файла са запазени за бъдеща употреба и обикновено съдържат нули.

2. изисква не-графични данни скрити в заглавната част на информация. Полетата в заглавната информация между другото съдържат неговия размер (40 байта информация, BMP-файл за Windows), височината и ширината на изображението в пиксели, а броят на бита на пиксел. В зависимост от метода на кодиране битово поле на пиксел, може да бъде:

1 - битов монохромен изображение и цвета на масата трябва да съдържа два елемента. Всеки бит в масива от данни кодира един пиксел. Ако малко стойност - 0, а след това става първият цветен пиксел таблицата; ако - 1, цвета на пиксела става втората таблица.

4 - растерна графика има максимум 16 цвята, както и таблицата с цветове има до 16 елемента. Цветът на всеки пиксел се определя от таблицата с цветове с помощта на четири индекса. Например, ако първият байт данни има 3Ah на стойност, при показване на картата на битовете на първия цветен пиксел елемент определя четвърти цвят на маса, цветът на втория - единадесети.

8 - растерна графика има максимум 256 цвята, както и таблицата с цветове има 256 елемента. Всеки данни масив от байтове определя цвета на един пиксел.

24 - растерна графика е с максимален от 2 до 24 градуса цвят. Цвят на маса е празна, и цвета на пиксела се определя от пакетите на трите байта, описващи интензитетът на цвета на червени, зелени и сини цветове.

3. Таблицата с цвят съдържа 256 полета на 4 байта. първият байт във всяко поле е отговорен за компонент син цвят, а втората за зелена и една трета - на червено. Четвъртият байт е неизползван и обикновено се поставя в 0. Ако първите три стойности в цвят графиката 0, 192 и 192, това означава, че броят на нула съответства на средната интензивност на жълт цвят (смес от зелен и червен). Таблицата с цвят определя всички цветове, използвани в илюстрацията.

4. Останалата част от файла съдържа стойностите на пикселите. Байт последователност съответства на реда на пикселите в изображението от ляво на дясно, като се започне от образа на най-долния ред. Стойността на всеки байт има редица цвят в цвят графиката. Форматът на действителната масива данни в растерен BMP файл зависи от броя на битовете, използвани за кодиране на данни за цвета на всеки пиксел. Когато изображението на 256 цвята, всеки пиксел в част от файла, която съдържа действителните данни на растер масива, е описан от един байт (8 бита). Това описание не представлява цветови стойности на пикселите RGB, и служи като указател към влиза цветовете на маса файлове. По този начин, ако първите цветни стойности RGB в цвета на масата BMP файл, съхранявани R / G / B = 255/0/0, стойността на пикселите 0 в растерна графика масив ще бъде съпоставена с ярко червен цвят. пикселни стойности се съхраняват в реда, в който се появи от ляво на дясно, от (обикновено) от образа на най-долния ред. По този начин, в 256-цвят BMP-файл първия байт растерни набор от данни с е индекс за цвета на пиксела, разположен в долния ляв ъгъл на изображението; Вторият байт е индексът за цвета на съседен пиксел надясно и така нататък. Д. Ако броят на байта на всеки ред е странно, а след това всеки ред се добавя към допълнително байт да приведе масива на растерни данни, с 16-битови граници.

Не всички BMP файлове имат структура, подобна на тази, показана на диаграмата. Например, BMP файлове с дълбочина от 16 и 24 бита / пиксел са без цветни таблици; в тези файлове, стойностите на пикселите на растерни масив пряко характеризират цветови стойности RGB. Те могат също така да варира вътрешен формат за съхранение на отделните части от даден файл. Например информацията на растер масив от около 16 и 256-цвят BMP файл може да се компресира от УПИ алгоритъм, който замества последователността на идентични пиксели в изображението на символите, определяне на броя на пикселите в последователността на цвета си. В Windows позволява да работи със стила на BMP-файл OS / 2, които използват различни формати на информация в заглавната част на масива на растерни и цвят масата.

След стартиране на програмата PCX_BMP.EXE <имя графического файла> стандартна характеристика Fnsplit разделя пълното име на файла на 4 части. Което дава възможност за прехвърляне на файлове с PCX разширение и BMP файлове с изображения за обработка на изходните функции на екрана (show_pcx и show_bmp).

Показва снимките, съхранявани в PCX-файла, започнете с четене заглавната част на файла. С тази определиха дали този файлов формат, PCX (производител следва да е 10), размерите на изображението, информацията за палитра, броят на цветни слоеве. След това процесът се движи до 768 байта от края на файла, за да се чете набор цветова палитра и използване функции Set_palette попълнете стойности на цветовите палитри.

Показани изображението се съхранява в BMP-файл започва с удар с глава на даден файл и прочетете информация в заглавната част. По този начин програмата проверява дали файлът графично формат BMP (подписът трябва да е "БМ"), както и да научат размера на изображения и цветове.

Програмата след това чете таблицата с цветове. След това програмата чрез функцията Set_palette изпълва цветовата палитра от цветови стойности на масата. Това гарантира правилното предаване на цветни снимки. Ако компютърът е в състояние да покаже хиляди или милиони цветове в същото време, че не е нужно да попълните цветовата палитра.

Чар далеч * видео = (знак далеч *) 0xA0000000L

Свързани статии

Подкрепете проекта - споделете линка, благодаря!