PDA

Դիտել ողջ տարբերակը : RGB-ից CMYK և հակառակը



Լ.յ.ո.վ.
06.12.2008, 01:30
Ինչպես գիտենք կան գունային բազում համակարգեր (RGB, CMYK, Hex, L.a.b. և այլն)
Ես ճիշտն ասած գլուխ եմ հանում միայն RGB-ից, որը աշխատում է շատ պարզ սխեմայով, այն է`տրվում է երեք պարամետր - կարմիրը (Red). կանաչը (Green) և կապույտը (Blue) ; Այս երեք պարամետրներն էլ փոխվում են 0-255 ամբողջ թվերի տիրույթում (երբեմն նաև 0-1 ) և որոշում 16 միլիոն (256*256*256 = 16777216) գույներից որևիցէ մեկը: Օրինակներ`
գույն - R G B
սև - 0, 0, 0
կարմիր - 255, 0, 0
կանաչ - 0, 255, 0
կապույտ - 0, 0, 255
դեղին - 255, 255, 0
սպիտակ - 255, 255, 255
և այլն:

Նման մի համակարգ է նաև CMYK-ը, որը տրվում է չորս պարամետրերով - բաց կապույտ ( Cyan ), մանուշակագույն ( Magenta), դեղին ( Yellow) և սև ( Կey-black ) : Այս պարամետրերը փոփոխվում են սովորաբար 0-100 ամբողջ թվերի տիրույթում (երբեմն նաև 0-1) :

Հիմա հարցը, որ ուզում եմ տալ, էն հույսով, որ կօգնեք :)

Ինչպես կարելի է RGB պարամետրերը վերածել CMYK-ի և հակառակը?

NetX
06.12.2008, 01:49
Կարող եմ փոքր ինչ լուսաբանել
CMYKը օգտագործվում է տպագրույան մեջ

RGB համակարգում սպիտակ գույնը դա
R=256=100%
G=256=100%
B=256=100%
այսինքն վերը նշված 3 գույների խառնուրդն է
իսկ սև գույնը դա վեր նշված գույների բացակայությունն է, այսինքն՝

R=0=0%
G=0=0%
B=0=0%

իրականում տպագրության մեջ գույները իրար խառնելով սպիտակ չի ստացվում,
իսկ գույների բացակայությունը դա սև գույնը չէ, այլ գույների բացակայությունը դա տպագրման նյութի մսանավոր դեպքում թղթի գույնն է, որը սպիտակ է

CMY համակարգը դա կոպիտ ասած թարս RGB համարգն է
որտեղ՝
սպիտակ գույնը դա՝
C=0%
M=0%
Y=0%

Սև գույնը՝
C=100%
M=100%
Y=100%

Բայց քանի որ պրակտիկայում ի տարբերություն տեսության C+M+Y դա իրենից ներկայացնում է գորշ-մոխրա-շականակագույն այլ ոչ թե սև, և բացի դրանից որ սև՛ի համար անիմաստ տեղը 3 տարբեր գույն չխարնվի ավելացրել են 4՛րդ գույնը՝ առանձին սևը Black ու արդյունքում ունենք CMYK
:)

Chuk
06.12.2008, 01:50
Կոնկրետ քեզ ի՞նչ է պետք:
Բազում ծրագրեր ավտոմատ փոխարկում են, թեկուզ նույն Photoshop-ը:
Կան նաև մինի ուտիլիտներ այդ փոխարկման համար:
Իսկ եթե բանաձևերն են պետք, տես գլուխ կհանես.


Ctemp = 1 - R
Mtemp = 1 - G
Ytemp = 1 - Y
Ktemp = min(Ctemp. Mtemp, Ytemp)

C = min(1, max(0, Ctemp-Ktemp))
M = min(1, max(0, Mtemp-Ktemp))
Y = min(1, max(0, Ytemp-Ktemp))
K = min(1, max(0, Ktemp))


Ընդհանրապես որ ժամանակ ունենամ, այս գունային մոդելների մասին ահագին կգրեմ :)

Լ.յ.ո.վ.
06.12.2008, 01:53
network.am մերսի CMYK-ի մասին ինֆորմացիայի համար, ես էդ K-ի (key black) պահը չգիտեի; ;)
Ու ճիշտն ասած մինչև հիմա էլ մութ մնաց թե էդ K պարամետրը ոնցա աշխատում?
Չէ որ տպագրությունից զատ, համակարգիչներում ևս օգտագործվում է CMYK-ը (գրեթե բոլոր իմիջ-ռեդակտորներում) և ուրեմն կա հստակ օրենք որով RGB_ն տարվում է CMYK-ի և հակառակը, չէ? :)

Chuk
06.12.2008, 01:58
Սև գույնն օգտագործվում է նաև մյուս գույներին այլ երանգ ապահովելու համար: Տեսականորեն cyan, magenta և yellow գույներից կարելի է ստանալ բոլոր գույները, գործնականում դա ապահովել միշտ չի որ հաջողվում ա ու օգնության ա հասնում սևը: Սա շատ բռի բան ասեցի :D

Լ.յ.ո.վ.
06.12.2008, 02:06
Կոնկրետ քեզ ի՞նչ է պետք:
Բազում ծրագրեր ավտոմատ փոխարկում են, թեկուզ նույն Photoshop-ը:
Կան նաև մինի ուտիլիտներ այդ փոխարկման համար:
Իսկ եթե բանաձևերն են պետք, տես գլուխ կհանես.


Ctemp = 1 - R
Mtemp = 1 - G
Ytemp = 1 - Y
Ktemp = min(Ctemp. Mtemp, Ytemp)

C = min(1, max(0, Ctemp-Ktemp))
M = min(1, max(0, Mtemp-Ktemp))
Y = min(1, max(0, Ytemp-Ktemp))
K = min(1, max(0, Ktemp))


Ընդհանրապես որ ժամանակ ունենամ, այս գունային մոդելների մասին ահագին կգրեմ :)

Ես էս բանաձևն էդքան լավ չհասկացա: Ասենք վերցնենք գորշավուն մի ինչ-որ գույն, ասենք RGB=(100, 100, 100) էդ դեպքում ըստ քո բանաձևի կունենանք`


Ctemp = 1 - 100 = -99
Mtemp = 1 - 100 = -99
Ytemp = 1 - 100 = -99
Ktemp = min(-99. -99, -99) = -99

C = min(1, max(0, -99+99)) = min(1, 0) = 0
M = min(1, max(0, -99+99)) = min(1, 0) = 0
Y = min(1, max(0, -99+99)) = min(1, 0) = 0
K = min(1, max(0, -99)) = min(1, 0) = 0


պատասխան ` CMYK = (0, 0, 0, 0) : Եթե սկբնական պարամետրերը (100, 100, 100) -ից փոխենք ասենք (200, 200, 200)-ի էլի նույն բանը կստանանք: Խելքին մոտա? :)

Ներսես_AM
06.12.2008, 02:11
RGB(100,100,100) ի դեպքում

R=100/255
G=նույնը
B=նույնը

Chuk
06.12.2008, 02:18
Ես էս բանաձևն էդքան լավ չհասկացա: Ասենք վերցնենք գորշավուն մի ինչ-որ գույն, ասենք RGB=(100, 100, 100) էդ դեպքում ըստ քո բանաձևի կունենանք`


պատասխան ` CMYK = (0, 0, 0, 0) : Եթե սկբնական պարամետրերը (100, 100, 100) -ից փոխենք ասենք (200, 200, 200)-ի էլի նույն բանը կստանանք: Խելքին մոտա? :)

Ես ուղղակի մոռացել էի ասել, որ R,G,B-ն պետք է բերված լինի (0..1) տիրույթի թվերի (այսինքն R=Red/255):

Իսկ բանաձևում հաշվելիս՝ min(1, max(0, Ctemp-Ktemp)), վերցնում ենք Ctemp-Ktemp-ի մոդուլը:

Վերջումը C, M, Y, K-ի համար էլի 0..1 տիրույթի թիվ ենք ստանում, որը պիտի բերենք (0..100) տիրույթի, այսինք Cyan=C*100 :)

Լ.յ.ո.վ.
06.12.2008, 02:37
Ես ուղղակի մոռացել էի ասել, որ R,G,B-ն պետք է բերված լինի (0..1) տիրույթի թվերի (այսինքն R=Red/255):

Իսկ բանաձևում հաշվելիս՝ min(1, max(0, Ctemp-Ktemp)), վերցնում ենք Ctemp-Ktemp-ի մոդուլը:

Վերջումը C, M, Y, K-ի համար էլի 0..1 տիրույթի թիվ ենք ստանում, որը պիտի բերենք (0..100) տիրույթի, այսինք Cyan=C*100 :)

Էս տեսքով արդեն տրամաբանական է: Ուղղակի մի պահ կա ես չեմ հասկանում, CMYK պարամետրերը միարժեք են որոշում RGB գույնը, թե ոչ?

Հնարավոր է ասենք նույն RGB-ն երկու տարբեր CMYK-երից ստացվի? :think

Ես CMYK-ից RGB գնալու համար էս բանաձևն էի գտել, բայց ոնց որ նորմալ չի աշխատում`



var Red:Number=Math.round( (1-C)*(1-K)*255 );
var Bed:Number=Math.round( (1-Y)*(1-K)*255 );
var Ged:Number=Math.round( (1-M)*(1-K)*255 );


ինչ կասեք? :8

Chuk
06.12.2008, 02:40
Հնարավոր է ասենք նույն RGB-ն երկու տարբեր CMYK-երից ստացվի? :think

Միանշանակ չի :) Հնարավոր է:

Մի քանի բանաձև կա, իմ բերածը կարծեմ համարվում ա ամենալավը:

Լ.յ.ո.վ.
06.12.2008, 16:35
Chuk, nekwork.am շնորհակալ եմ օգնության համար ;)