GIMP a využití vrstev při digitalizaci vícestránkových dokumentů

Z thewoodcraft.org
Stránka byla naposledy editována 27.8.2023 (Vytváření 11. dubna 2022)

Jedním z důvodů, proč použít ke zpracování skenů (či snímků) archívních dokumentů bitmapový open source editor GIMP, jsou vrstvy a plug-iny, které rozšiřují standardní možnosti GIMPu pro práci s nimi.

GIMP standardně umožňuje načíst několik souborů najednou tak, že se každý z nich vloží jako samostatná vrstva. Díky tomu, lze uložit najednou všechny do jednoho souboru XCF formátu a postupně zpracovávat – natáčet, korigovat perspektivu, aplikovat nejrůznější filtry, atp.

Některé užitečné funkcionality pro práci s vrstvami, které se v tomto případě hodí, ale standardní instalace nemá. Proto doporučuji doinstalování následujících pluginů:

export_layers.py
GIMP sice umožňuje načíst více souborů do vrstev, ale pro uložení vrstev do samostatných souborů už je potřeba použít tento plugin. Při uložení použije GIMP pro název souboru jméno vrstvy, za které připojí zkratku formátu, do kterého budete vrstvu exportovat. Výhodné je, že si můžete zvolit, jestli se budou exportovat všechny vrstvy, nebo jenom ty, co mají nastaveno, že mají být viditelné. Plugin pro export vrstev, je ke stažení zde. Případně si ho můžete stáhnout z git repozitáře.[1]

Při práci s mnoha vrstvami v GIMPu také chybí funkce, které by umožnily rychle a jednoduše vrstvy setřídit podle abecedy, nebo hromadně přejmenovat. By default lze totiž v rámci zásobníku vrstev šoupat pouze s jednou vrstvou. A to pomocí šipek v zápatí zásobníku, nebo myší. Rychlý a snadný je přesun vrstvy zcela nahoru či dolů – stačí při kliku na šipku přidržet klávesu Shift.

Pokud se mají setřídit vrstvy jinak, je rychlejší využít přetažení vrstvy myší. Ale ne když je těch vrstev víc, než je zobrazeno v okně zásobníku. Přetažení vrstvy přes X dalších vrstev je zdlouhavé, a setřídění 150 vrstev nacvakané knihy, kde jdou za sebou nejprve liché stránky a po nich sudé stránky, je fakt otravné. Naštěstí existují pluginy, které umožňují jak hromadné přejmenování vrstev, tak i hromadné setřídění:

find-replace-layers.py
Při práci s dokumenty importovanými do vrstev záhy zjistíte, že by se vám hodila možnost vrstvy hromadně přejmenovat. Při načtení totiž GIMP použije pro názvy vrstev jména načtených souborů, a to včetně přípon a přejmenovávat jednu vrstvu po druhé je poněkud otravné. Obzvláště když pracujete s dokumentem, který má 10 a více vrstev.
permute-layer-groups.py
Umí sofistikovaným způsobem exportovat celé skupiny vrstev.
sort-layers.py
Rozšiřuje možnosti třídění vrstev podle názvu. Standardně umožňuje GIMP pouze obrátit pořadí vrstev v zásobníku.

Jsou to skripty, napsané v Pythonu, které stačí po stažení[2] nakopírovat do adresáře .config/GIMP/2.10/plug-ins.

Zásobník vrstev

GIMP pracuje v rámci zásobníku vždy pouze s jednou aktivní vrstvou. Jméno této vrstvy je v zásobníku podbarveno. Můžeme ji libovolně posouvat, ořezávat. Můžeme z jejího obsahu dělat výběry, kreslit do ní, aplikovat na ni nejrůznější filtry a také ji můžeme skrýt – viditelné vrstvy mají v zásobníku zobrazen symbol oka.

Upozornění Skrytá vrstva se při zpracování zobrazeného obsahu ignoruje. To je důležité, pokud pracujete se soubory, které mají hodně vrstev. Příliš mnoho viditelných vrstev zpomaluje generování náhledů a z výpočetního hlediska si tak zbytečně komplikujete práci. Zobrazujte si tedy jen ty vrstvy (stránky) s nimiž pracujete.

Každá vrstva má své jednobarevné pozadí. To, co vidíte jako obrázek, jsou barevné pixely popředí. Průhlednost zajišťuje tzv. alfa kanál.

  • Nemá-li vrstva nastaven alfa kanál, bude GIMP při použití gumy nahrazovat barevné pixely barvou pozadí.
  • Má-li vrstva nastaven alfa kanál, bude GIMP při použití gumy nahrazovat barevné pixely průhlednými pixely, jimiž bude vidět obsah nižší vrstvy v zásobníku.

Vrstvy lze také hromadně přesouvat. Můžete to udělat dvěma způsoby.

Buď můžete vrstvy které chcete posunout můžete spojit zámkem – zamčené vrstvy mají zobrazen symbol řetězu. Nebo je můžete seskupit do skupiny.

Zámek lze využít také v případě, že chcete zabránit nežádoucímu zásahu do obsahu či pozice vrstvy. Nastavuje se to v záhlaví zásobníku:

Při zamčení barvy pixelů nebude možné do zamčených vrstev kreslit, ani z nich něco mazat
Při zamčení pozice nebude možné tyto vrstvy nechtěně přesunout, či u nich změnit velikost
Při zamčení alfa kanálu nebude možné pixely mazat

Skupiny vrstev

Skupina vrstev se chová jako vrstva, se kterou lze pracovat, aniž bychom tím bezprostředně ovlivňovali obsah vrstev ve skupině. Tzn. že při rozostření skupiny vrstev zůstanou vrstvy uvnitř skupiny nedotčeny. A v případě, že do skupiny vrstev přidáme jinou vrstvu, bude její obsah zobrazen rozostřený stejným způsobem, jako bychom na ni aplikovali rozsostření se stejnými parametry přímo.

Režim vrstvy – blending mode

Pro každou vrstvu lze zvolit režim, jaký se má použít při aplikaci jejího obsahu na nižší vrstvu v zásobníku. Těchto režimů je celá řada. V zásadě jde ale o 7 skupin:

  1. Základní skupina
  2. Zesvětlovací režimy
  3. Ztmavovací režimy
  4. Režimy upravující kontrast
  5. Režimy pracující s inverzí
  6. Slučovací režimy
  7. Režimy upravující barevné složky obrazu

Jde v podstatě o matematické operace s barevnými hodnotami pixelů. Kdy se v případě vrstvy pracuje s hodnotou pixelu ve vrstvě horní v závislosti na vrstvě horní.

Barevná hodnota pixelu vzniká kombinací hodnot tzv. kanálů (channels). Každý kanál lze interprertovat jako obrázek ve stupních šedi, kdy bílá barva zastupuje nulovou přítomnost barevné složky, zatím co černá plnou barevnou hodnotu. V případě RGB, je barevná hodnota pixelu daná kombinací hodnot červeného (Red), zeleného (Green) a modrého (Blue) kanálu, případně ještě kanálu Alpha, který popisuje intenzitu průhlednosti.

Pokud tedy chcete dosáhnout stejného efektu, jako při aplikaci vrstvy v rámci Gimpu, s využítím nástrojů z balíku Netpbm, pamatujte, že je potřeba nejprve vyexportovat jednotlivé kanály a po příslušné operaci (např. rozmazání) je potřeba je opět spojit, pokud s nimi už žádnou další operaci podobného typu nebude potřeba dělat.

Ukázkový příklad najdete u článku Příprava XCF souboru pro konverzi do DjVu, kde je názorně vysvětleno jak dosáhnout pomocí nástrojů z balíku Netpbm stejného efektu, jako při aplikaci režimu dělení (divide) na vrstvu u Gimpu.

Základní skupina

Ilustrační obrázek, který demonstruje efekt základních režimů vrstev.