Цветови модели (RGB, CMYK)

Увод

Както знаете на екрана изображенията се показват чрез растер, т.е правоъгълна матрица от пиксели. Всеки пискел има свой собствен цвят. Това, което ще разгледаме в тази лекция са различните начини на задаване на цвят на даден пиксел, именно - цветовия модел. За пълнота ще споменем и не съвсем цветните модели

  • черно-бял. Обърнете внимание, че за разлика от черно-белите телевизори тук има САМО черно и бяло - т.е няма никакво сиво :)
    • възможни цветове - черен и бял
    • заемана памет: 1 бит. Всеки бит е единица (1) или нула (0) и съответства на черно / бяло (може и наобратно). Ако малко си поиграете с побитови операции ще постигнете този минималистичен размер. Някои стари дисплеи (може и на телефони) имат само един цвят при тях един пиксел се кодира точно в един бит - пести се доста памет.
  • полутонови. Това е еквивалента на черно-белите телевизори. Има всички цветове между бялото и черното. Т.е всички степени на сивото.
    • възможни цветове - всички степени на сивото
    • заемана памет: 1 байт. В един байт се кодират 255 различни нюанса на сивото. За повечето употреби това е напълно достатъчно
  • цветни. Тук нещата стават интересни
    • възможни цветове - всички
    • заемата памет - 3 байта. Обикновенно всеки цвят има 3 компоненти, като можем да смятаме, че 3те са от 0 до 255 и да ги кодираме в по един байт. (разбира се, тези 3 компоненти могат да значат различни неща. Виж по надолу)

Ще разгледаме най-основните начини за представяне на цвят и разбира се как от едно представяне да преминем към друго.

RGB

Най-известният начин е така нареченото RGB, съкратено от Red, Green, Blue. Както може да се досетите, трите компоненти, определящи даден цвят, са именно интензитетите на основните цветове (с каква сила основните цветове присъстват в дадения). Всички останали цветове се получават от подходящо смесване на основните. Този начин е най-широко разпространен, мониторите използват точно това представяне, за да изобразят нещо. Всеки пиксел е всъщност 3 малки лампички - червена, зелена и синя. Тъй като в миналото не са си давали зор да правят голяма абстракция между хардуера и софтуера, то и програмистите са били принудени да използват този начин на задаване на цветове, освен всичко друго той не е чак толкова контра-интуитивен. Под "миналото" се има предвид "преди две седмици".

CMYK

3те допълнителни цвята на RGB са Cyan, Magenta, Yellow (в приблизителен превод "светло синьо", "пурпурно" - нарича се и просто "магента", и "жълто"). В RGB те се получават така:
Cyan = Green + Blue
Magenta = Red + Blue
Yellow = Red + Green
Ако разсъждаваме в термините на RGB, черното обозначава липсата на всеки от трите основни цвята от RGB (т.е, ако трите цветни компонента - червена, зелена, синя - са нула, се получава черно, а ако са max - 255 или 1, зависи дали ги разполагаме в дискретния интервал [0, 255], или в реалния интервал [0, 1] - се получава бял).
Съществува цветова схема, в която циановото, магентата и жълтото, тези три допълнителни (за RGB) цвята са основни, а червеното, зеленото и синьото пък са допълнителни и се получават чрез смесването на първите три. Тази схема се нарича CMYK (Cyan, Magenta, Yellow, Black). Какво? К означава черно, ок? По-добре ли щеше да е, ако го бяха кръстили ЦМУБ?

Тази лекция е лицензирана под Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License .