Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
-
30. září 2024
-
4. října 2024
-
14. listopadu 2024
-
11. prosince 2024
VSE
Skriptujeme InDesign (25): Barvy poprvé
Adobe InDesign sazba
11. září 2006, 00.00 | V tomto díle našeho seriálu se poprvé podíváme blíže na práci s barvami. Pozornost zde
přitom zaměříme na základní postupy, potřebné při vytváření barev a zpracování vzorníků.
V tomto díle našeho seriálu se poprvé podíváme blíže na práci s barvami. Pozornost zde přitom zaměříme na základní postupy, potřebné při vytváření barev a zpracování vzorníků.
Colors versus swatches
V dokumentech InDesignu se barvy mohou vyskytnout v podstatě dvěma způsoby: coby barvy nepojmenované (přidané pomocí paletky Colors-Barvy) a dále coby barvy vzorníkové (v UI InDesignu spravované přes paletku Swatches-Vzorník). V rámci objektového modelu je situace s barvami trochu odlišná, dá se říci že mírně mysteriózní (ani autority typu D. Saunderse zde tentokrát nejsou schopny vnést více světla do dané záležitosti).
Především jde o to, že i když jsou v modelu dostupné jak objekty color
(a kolekce
colors
) a dále swatch
(kolekce swatches
), má základní význam spíše objekt color
a
celkově není pojetí daných objektů tak transparentní, jako v případě uživatelského
rozhraní. Konkrétně tím míníme například to, že v kolekci colors
nalezneme i všechny
vzorníkové barvy, identifikace je zde daná vlastností name. Pokud má nějakou konkrétní
hodnotu, je jí označení barvy na paletě vzorníku, daná barva tedy do vzorníku patří.
Je-li daná hodnota nevyplněna (tj. v testech používáme srovnání s hodnotou ""
), jedná se
o barvu nepojmenovanou, ve vzorníku se nevyskytuje. Pokud ve skriptu přidáme barvu do
kolekce colors
, vytvoří se automaticky jako vzorek - políčko vzorníku (viz další
výklad).
K vlastnostem a tvorbě barev
Každá barva má mimo jiné vlastnosti name (znovu připomeňme, že pojmenování znamená, že
je barva zařazená mezi swatches
), dále pak model
(barvový model), space
(prostor) a
colorValue
(určení hodnoty v daném barvovém prostoru). Model může být přímá barva
(ColorMode.spot
), procesní barva (ColorMode.process
), registrační
(ColorMode.registration
) či mixed ink (ColorMode.mixedinkmode
). Prostor může být RGB
(ColorSpace.rgb
), CMYK (ColorSpace.cmyk
), LAB (ColorSpace.lab
) a Mixed Ink - tedy
míchaná barva (ColorSpace.mixedInk
). Konečně colorValue
představuje uspořádanou n-tici
reálných čísel, určujících souřadnice barvy v daném barvovém prostoru (čtveřice
udávající procentuální hodnoty pro CMYK, trojice celočíselných hodnot vždy od 0 do 255
pro RGB, trojice s hodnotami 0-100, -127 až 127 a -127 až 127 pro LAB, u Mixed Ink je
situace s určováním hodnot odlišná a budeme se ji věnovat na jiném místě výkladu).
Colors i swatches mohou být definovány jak pro aplikaci (tj. jde o barvy a vzorky
dostupné pro každý dokument), tak pro dokument. Dané skutečnosti odpovídá vlastnost
parent
(rodič) pro color
či swatch
, jež vrací buďto hodnotu app
nebo document
.
Přidání barev do vzorníku můžeme demonstrovat následujícími příklady:
var myDoc=app.activeDocument;
//Do dokumentu přidá CMYK barvu
try{myColor=myDoc.colors.add({space: ColorSpace.cmyk, colorValue:
[0,100,0,10], name: "Pokusná CMYK barva"})}
catch(e){alert(e)};
//Do dokumentu přidá RGB barvu
try{myColor=myDoc.colors.add({space: ColorSpace.rgb, colorValue:
[0,255,171], name: "Pokusná RGB barva"})}
catch(e){alert("Barva daného jména již
zřejmě existuje")};
//Na úrovni aplikace přidá LAB barvu
try{myColor=app.colors.add({space: ColorSpace.lab, colorValue:
[90,127,-127], name: "Pokusná LAB barva"})}
catch(e){alert(e)};
Pokud přidáme barvu bez toho, že bychom určili cokoli jiného, nežli pojmenování, použijí se hodnoty aktuálně nastavené pro výplň či tah na paletě nástrojů InDesignu. Danou skutečnost lze použít k různým diagnostikám, jak dokládá následující skript:
var myDoc=app.activeDocument;
//Do proměnné myTestColor načteme aktuální barvu pro výplň/tah určenou
na paletce nástrojů.
//Zkusíme přidat barvu jménem Test a načíst ji do proměnné myTestColor.
//Pokud Test existuje, barvu "resetujeme" nebo skript předčasně
ukončíme.
try{myTestColor=myDoc.colors.add({name: "Test"})}
catch(e){if(confirm("Barva jménem Test
asi existuje, mám resetovat její nastavení?"))
{myDoc.colors.item("Test").remove();
var myTestColor=myDoc.colors.add({name: "Test"})}
else{exit()}};
//Zde provedeme nějaké testy, přiřazení apod. s použitím hodnot v
proměnné myTestColor
//Například:
if(myTestColor.space==ColorSpace.rgb){alert("Chcete opravdu obarvovat
RGB barvou?")}
//Zde barvu "Test" odstraníme
try{myDoc.colors.item("Test").remove()}catch(e){};
Naskýtá se samozřejmě otázka, jak do dokumentu přidat barvy ze vzorníků, kterých je s
InDesignem dodávána rozsáhlá sada. Zde lze použít metody
importAdobeSwatchbookProcessColor
a importAdobeSwatchBookSpotColor
. V obou případech je
jako parametr daných metod použito jméno dané barvy, které lze jinak zjistit přes UI
InDesignu (paletka Vzorník-Swatches, dialog vyvolaný příkazem pro přidání nového
políčka-swatche). Příklad použití:
var myDoc=app.activeDocument;
//Přidá přímou barvu Pantone
myDoc.importAdobeSwatchbookSpotColor("PANTONE 871 C");
K dispozici je dále možnost načíst do dokumentu nebo aplikace vzorník z určeného
dokumentu (metoda loadSwatches
- parametrem je zde jméno souboru /dokument InDesignu
nebo soubor typu Adobe Swatch Exchange/ se vzorníkem), dále lze naopak uložit vybrané
barvy do souboru (metoda saveSwatches
, parametry jsou název souboru a pole vzorků).
var myDoc=app.activeDocument;
//Načte vzorníky z dokumentu "Vrstvypok"
myDoc.loadSwatches(File("/c/clanky/skriptid/vrstvypok.indd"));
//Uloží všechny políčka ze vzorníku do dokumentu "Vzorky.ase"
myDoc.saveSwatches(File("/c/clanky/skriptid/vzorky.ase"),myDoc.swatches);
//Uloží všechny RGB políčka ze vzorníku do dokumentu "VzorkyRGB.ase"
//Všimněte si, jakým způsobem zjišťujeme barvové hodnoty políčka (přes
vlastnost properties)
var myDocSWRGB=new Array();
for(i=0;i<myDoc.swatches.length;i++){if(myDoc.swatches[i].properties.space==ColorSpace.rgb){myDocSWRGB.push(myDoc.swatches[i])}}
myDoc.saveSwatches(File("/c/clanky/skriptid/vzorkyRGB.ase"),myDocSWRGB);
Ještě více barvách vzorníku
V InDesignu jsou k dispozici vždy čtyři políčka vzorníku určená ke speciálním účelům. "None" (v českém InDesignu "Žádná") zde slouží k odstranění barev z objektů, tj. aplikujeme-li jej na výplň či tah objektu, stane se tento průhledným (viz náš výklad v příštím díle). "Black" ("Černá") určuje tiskařskou černou, tj. tu barvu, která se v CMYK bude tisknout na černý plát. Registration ("Registrační") pak barvu, jež se bude tisknout na všech plátech. Konečně je zde vzorek Paper ("Papír"), který se narozdíl od předchozích tří dá měnit. Jedná se o barvu, kterou je obarveno pozadí dokumentu. Změna zde dovolí použít specifické pozadí (barva, šeď apod.) pro testování vzhledu tiskoviny. Příklad změny nastavení daného vzorku:
var myDoc=app.activeDocument;
//V českém ID se daný vzorek jmenuje "Papír"
myDoc.swatches.item("Paper").properties={model: ColorModel.process,
space: ColorSpace.cmyk, colorValue: [20,40,50,0]};
Obnovení na výchozí hodnotu vypadá následovně:
var myDoc=app.activeDocument;
myDoc.swatches.item("Paper").properties={model: ColorModel.process,
space: ColorSpace.cmyk, colorValue: [0,0,0,0]};
K dispozici jsou dále metody pro manipulaci se vzorky, které mají své odpovídající
protějšky v UI InDesignu. Již jsme si takto ukázali práci s metodami add
pro přidání a
remove
pro odstranění vzorku. Další zde je metoda merge
objektu swatch
, sloužící ke
sloučení vzorků, tedy odstranění jedné či více vybraných barev a jejich nahrazení barvou
určenou. Parametrem pro tuto metodu je pole vzorků, které se mají odstranit, metoda se
použije pro vzorek, kterým chceme provést nahrazení.
//Všechny přímé barvy nahradíme vzorkem "Black" (pro český
ID použijte "Černá")
var myDoc=app.activeDocument;
//Pole pro přímé barvy
var mySpotCol=new Array();
//Naplnění pole mySpotCol přímými barvami z dokumentu
for(i=0;i<myDoc.colors.length;i++){if(myDoc.colors[i].model==ColorModel.spot){mySpotCol.push(myDoc.colors[i])}};
//Sjednocení políček
myDoc.swatches.item("Black").merge(mySpotCol);
K dispozici je i vlastnost unusedSwatches
objektu document
, jež vrací pole všech barev
vzorníku, které nejsou v daném dokumentu použity. Využít lze danou metodu například k
odstranění všech nepoužitých vzorků, například sloučením se vzorkem "Black" ("Černá"):
//Všechny nepoužité vzorky odstraníme a nahradíme vzorkem
"Black" (pro český ID použijte "Černá")
var myDoc=app.activeDocument;
//Pole pro nepoužité vzorky
var mySpotCol=myDoc.unusedSwatches;
//Sjednocení políček
myDoc.swatches.item("Black").merge(mySpotCol);
Zmínit se lze ještě jednou o metodě remove
pro odstranění barev. Ta totiž nabízí coby
volitelný parametr barvu, kterou se má daná barva zaměnit. Použití může být třeba
následující:
//Všechny nepoužité vzorky odstraníme a nahradíme vzorkem
"Black" (pro český ID použijte "Černá")
//Vzorek "C=0 M=100 Y=0 K=0" nahradí vzorkem "My Magenta"
var myDoc=app.activeDocument;
//Tvorba vzorku "My Magenta"
try{myDoc.colors.add({name: "My Magenta", model: ColorModel.process,
space: ColorSpace.cmyk, colorValue: [0,100,0,0]})}catch(e){};
//Odstranění-náhrada vzorku
myDoc.swatches.item("C=0 M=100 Y=0 K=0").remove(myDoc.swatches.item("My
Magenta"));
Obsah seriálu (více o seriálu):
- Skriptujeme InDesign (1): Úvod
- Skriptujeme InDesign (2): První kroky
- Skriptujeme InDesign (3): Základy JavaScriptu poprvé
- Skriptujeme InDesign (4): Základy JavaScriptu podruhé
- Skriptujeme InDesign (5): Dokumenty poprvé
- Skriptujeme InDesign (6): Dokumenty podruhé
- Skriptujeme InDesign (7): Výstup
- Skriptujeme InDesign (8): Stránky
- Skriptujeme InDesign (9): Stránkové objekty poprvé
- Skriptujeme InDesign (10): Stránkové objekty podruhé
- Skriptujeme InDesign (11): Dialogy
- Skriptujeme InDesign (12): Text poprvé
- Skriptujeme InDesign (13): Text podruhé
- Skriptujeme InDesign (14): Text potřetí
- Skriptujeme InDesign (15): Hledání a záměny poprvé
- Skriptujeme InDesign (16): Hledání a záměny podruhé
- Skriptujeme InDesign (17): Regulární výrazy
- Skriptujeme InDesign (18): Tabulky poprvé
- Skriptujeme InDesign (19): Tabulky podruhé
- Skriptujeme InDesign (20): Obrázky poprvé
- Skriptujeme InDesign (21): Obrázky podruhé
- Skriptujeme InDesign (22): Obrázky potřetí
- Skriptujeme InDesign (23): ESTK aneb jak na editaci a ladění skriptů
- Skriptujeme InDesign (24): Vrstvy
- Skriptujeme InDesign (25): Barvy poprvé
- Skriptujeme InDesign (26): Barvy podruhé
- Skriptujeme InDesign (27): Barvy potřetí
- Skriptujeme InDesign (29): Metadata podruhé
- Skriptujeme InDesign (30): Návěští
- Skriptujeme InDesign (31): Okna
- Skriptujeme InDesign (32): Reakce na události
- Skriptujeme InDesign (33): Novinky v CS3 verzi
-
14. května 2014
Jak vkládat snímky do galerií a soutěží? Stručný obrazový průvodce
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
12. června 2012
-
9. dubna 2014
-
29. listopadu 2013
-
6. září 2004
OKI snižuje ceny barevných laserových tiskáren C3100 a C5200n
-
13. května 2004
-
19. ledna 2004
QuarkXPress Passport 6: předvedení nové verze na konferenci Apple Forum 27.1.2004
-
6. února 2001
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
14. října 2024
-
22. října 2024
-
14. listopadu 2024
-
10. prosince 2024