Väritysviritystä

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 28.9.2004 16:48

Survolla värigrafiikkaa tuotetaan joko suoraan kuvaruutuun (GPLOT-
komento) tai PostScript-tiedostoiksi (tai PostScript-tulostimille)
(PLOT-komento).

Jos haluaa olla tarkka kuviensa värien suhteen, tulee tietää, että
kuvaruudulla värit määräytyvät ja näkyvät aivan eri tavalla kuin
paperilla. Lisäksi riippuu esim. näyttölaitteen ominaisuuksista ja
säädöistä sekä toisaalta paperitulostimen (väri)ominaisuuksista,
kunnosta, tulostuspaperin laadusta, valaistusolosuhteista ja jopa
katsojan silmästä, millaisina värit ja sävyt näyttäytyvät.

Väripainatuksessa ja PostScript-kuvissa vallitsevana on
CMYK-järjestelmä, jossa värit kuvataan 4 komponentin C=Cyan
"vaaleansinertävä", M=Magenta "ruusunpunainen", Y=Yellow "keltainen",
K=blacK "musta" niin, että kukin komponentti vaihtelee nollasta (tyhjä)
yhteen (täysi) ja värit kerrostuvat (painomusteen tapaan) päällekkäin
siten, että mitä enemmän eri komponentteja sitä tummempia värisävyjä.
Esim. "kaunista" sinistä edustaa yhdistelmä (1,1,0,0).
Mustaa ja harmaan eri asteita saa periaatteessa joko yhdistelmällä
(a,a,a,0) tai (0,0,0,a), missä 0<a<=1. Käytännössä jälkimmäinen takaa
aidomman harmauden, koska väri syntyy pelkästään mustasta "väri-
patruunasta". Jos sekoitetaan vain kolmea ensimmäistä komponenttia
tasasuhteisesti, "harmaa" saattaa olla silti esim. ruskehtavaa, koska
komponentit eivät käytännössä jakaudu aivan tasaisesti painopinnalle
tai eivät ole väriltään tarkalleen oikeita.

Kuvaruudulla käytetään väritelevisiosta tuttua RGB-järjestelmää.
Siinä värit esitetään 3 komponentin R=Red (punainen), G=Green (vihreä)
ja B=Blue (sininen) avulla. Komponenttien (eriväristen "valonsäteiden")
kerrostuessa sävyt kirkastuvat eli tapahtuu päinvastoin kuin
CMYK-järjestelmässä.

Jos unohdetaan K-komponentti (musta), niin CMY- ja RGB-järjestelmien
välillä on periaatteellinen vastaavuus

    R = 1 - C                  C = 1 - R
    G = 1 - M   tai kääntäen   M = 1 - G
    B = 1 - Y                  Y = 1 - B

ja siis esim. kirkasta keltaista saadaan kuvaruutuun, kun R=1, G=1 ja
B=0.

Käytännössä ja aivan yleisesti ottaen CMYK- ja RGB-väriavaruuksien
välillä ei ole yksikäsitteistä vastaavuutta.
Lisää tietoa näistä asioista on luettavissa mm. verkkosivuilta
http://dx.sheridan.com/advisor/cmyk_color.html 
http://www.kolumbus.fi/ari.lindholm/06/06.html 

SURVO MM:ssä on joukko nimettyjä värejä sekä PLOT- että GPLOT-puolella.
Värit valitaan hakasulkuihin merkityillä nimillään tai koodeillaan
täsmennysten (specifications) yhteydessä.

Esim.
HEADER=[RED],Mallikuva_1
tai
HEADER=[color(0.333,1,1,0)],Mallikuva_1
tuottaa punaisen otsikon.
GPLOT:issa color-määritys on tulossa mukaan versiosta 2.18 lähtien.
Se lisää edelleen PostScript- ja kuvaruutukuvien hallinnan
samankaltaisuutta.
Aikaisemmissa versioissa esim. siniharmaa (jota ei ole valmiiksi
nimetty) saadaan GPLOT:issa kuvan otsikon väriksi asetuksilla
HEADER=[c(-1)],Mallikuva_1  FILL(-1)=0.5,0.5,0.3,0.2

Värien valinnassa on suureksi avuksi sukro
/COLORMAP-PRINT
joka piirtää useampisivuisen värikartan erilaisista CMYK-yhdistelmistä
PostScript-tiedostona. Kun aikoo tulostaa värikuvia sisältävän
raportin lopullisen version tietyllä laitteella (kirjoittimella tai
painokoneella), kannattaa ennen lopullisten värien määrittelyä
tulostaa tämä värikartta samalla laitteella ja käyttää karttaa mallina,
jotta saa mitä haluaa.

Nykyisin monet työt esitetään verkossa esim. PostScript-tiedostoista
muunnettuina PDF-tiedostoina ja niitä ei välttämättä tulosteta lainkaan
paperille vaan katsellaan suoraan kuvaruudusta esim. Acrobat Readerin
avulla.
Tätä varten olen tutkinut mahdollisuuksia saada aikaan mahdollisimman
hyvä vastaavuus suoraan GPLOT:illa tuotettujen värien ja PLOT:illa
PS->PDF-muunnoksen kautta kuvaputkella näkyvien värien kesken.

Jos PS->PDF-muunnokseen käytetään Ghostscriptiä (ver.8.13
oletusasetuksin) eli jos käytetään esim. sukroa /GS-PDF, vastaavuus
näyttää täydelliseltä, kun CMYK->RGB-muunnos tehdään kaavoilla

R=int(255*(1-min(1,C+K))),
G=int(255*(1-min(1,M+K))),
B=int(255*(1-min(1,Y+K))).

Huom. Windowsin RGB-koodauksessa värikomponentit esitetään kokonais-
lukuina 0,1,2,...,255=2^8-1 välin (0,1) asemasta, jolloin jokainen väri-
yhdistelmä kuvataan 3*8=24-bittisenä "sanana". Tällöin periaatteessa
saadaan 2^24=16777216 erilaista väriä.

Versiosta 2.18 lähtien SURVO MM:ssä GPLOT-kuvissa annetut CMYK-koodit
muunnetaan RGB-puolelle noiden kaavojen mukaisesti ja tämä vastaa
uuden täsmennyksen RGB oletusarvoa RGB=1.

Valitettavasti Adobe Acrobatin puolella täyttä vastaavuutta en ole
saanut aikaan (tähän mennessä) millään muunnoskaavoilla eikä Acrobat
Distillerin asetuksilla. Kohtuullisen lähelle päästään kaavoilla

R=int(255*(1-C)*(1-K)),
G=int(255*(1-M)*(1-K)),
B=int(255*(1-Y)*(1-K)),
joita GPLOT:issa käytetään asetuksella RGB=2 tai kaavoilla

R=int(255*(1-(C+K)/s),
G=int(255*(1-(M+K)/s),
B=int(255*(1-(Y+K)/s), s=min(1,K+max(C,M,Y))
asetuksella RGB=3, mikä ennen SURVO MM-versiota 2.18 on ollut (ainoa)
oletusasetus ja johon päädyin aikoinaan "kokeellisesti".

Olen hieman ihmeissäni, etten ole saanut Acrobat Distilleriä toimimaan
millään asetuksilla siten, että PostScript-kuvat ja vastaavat
GPLOT-kuvat olisivat kuvaruudussa täsmälleen samanvärisiä, kun se
näyttää onnistuvan Ghostscriptin avulla loistavasti.
Yleisesti Distillerin kautta tulevat värit ovat sameampia.
Olenkin viikko sitten lähettänyt ongelmasta tiedustelun Adobelle, mutta
siihen ei vielä ole tullut vastausta.

Huomattakoon, että edellä mainitut kolme CMYK->RGB-muunnosta ovat
yhteneviä, kun K=0 (eli periaatteessa turhaa mustaa komponenttia
ei lainkaan käytetä).
Silti Distiller ei muunna edes puhdasta CMYK-keltaista (0,0,1,0)
RGB-keltaiseksi (1,1,0) vaan yleensä likaisemman näköiseksi.
Kannattaa kokeilla seuraavaa esimerkkiä:
GPLOT maalaa kuvaruudun oikean puoliskon kirkkaankeltaiseksi.
Jos aktivoidaan perässä oleva PLOT, joka tekee PS-tiedoston K.PS ja
näytetään se /GS-PDF- tai /PS-PDF -sukrolla, niin edellinen antaa
täsmälleen saman värin kuin GPLOT mutta jälkimmäinen ei.
(Sopivasti kuvia klikkailemalla saa väripinnat osittain päällekkäin.)
.......................................................................
MODE=PS FRAME=0   WSTYLE=0  WHOME=WX/2,0 WSIZE=WX/2,WY
GPLOT /FRAME
FRAMES=F F=0,0,1500,1500,-1
FILL(-1)=0,0,1,0
.......................................................................
FILL(-1)=0,0,1,0
DEVICE=PS,K.PS FRAME=0
FRAMES=F F=0,0,1500,2700,-1
PLOT /FRAME
/GS-PDF K.PS / tuottaa samaa keltaista riippumatta näytön säädöistä.
/PS-PDF K.PS / antaa tummempaa keltaista tavallisilla näytön säädöillä.
.......................................................................

Tässä kuvaamillani asioilla ei ole paljonkaan merkitystä tyypillisissä
Survon sovelluksissa, koska esim. tilastografiikassa tärkeintä on
lähinnä eri värien selvä erottuminen toisistaan, ei se mitä ne
tarkalleen ovat. Joissakin tilanteissa on kuitenkin hyvä olla selvillä
siitä, että värien hallintaan liittyy melko hankalia ongelmia, joihin
ei ole yksiselitteisiä ratkaisuja.

- Seppo

Vastaukset:
[ei vastauksia]

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.