# 6. Manipulace s obrázkem

mtPaint má mnoho základních nástrojů pro manipulaci s obrázkem, které jsou užitečné v mnoha situacích. Tyto funkce lze nalézt v menu Obrázek a Efekty.

## 6.1 Ořez

Pro oříznutí obrázku stačí udělat obdélníkovou výseč oblasti obrázku, kterou chcete zachovat a stisknout klávesu Delete.

## 6.2 Změna měřítka

Pro rychlou změnu měřítka obrázku jednoduše stisknete klávesu 'Page Up' a zadáte nové rozměry jaké požadujete. Pokud měníte měřítko RGB obrázku, máte na výběr několik metod. Pro většinu situací bude nejlepší použít výchozí metodu, ale jsou zde k dispozici další metody, pokud potřebujete něco speciálního, jako lehké zaostření obrázku, které se používá při vytváření miniatur obrázku.

### 6.2.1 Gamma korekce

Pokud měníte měřítko RGB obrázku, tak máte možnost použít volbu gamma korekce pro úpravu obrázku. Lidské oko je více citlivé na rozdíly mezi tmavými odstíny, než na rozdíly mezi světlými. Tato nelinearita je zanesená v RGB kódování, takže množství světla vyzářené body na stínítku obrazovky nezávisí na RGB hodnotách lineárně, ale je dáno množstvím energie. Obyčejně se o toto nemusíte starat, ale při práci s grafikou, kde je mnoho pixelů mícháno dohromady, vede prosté míchání jejich RGB hodnot k tomu, že je obrázek tmavší, než by měl být a menší světlé detaily se ztratí. Pro vyřešení tohoto problému je vhodné použít gamma korekci.

Aktuální úrovně jasu záleží na nastavení displeje, jako je jas, nebo kontrast a citlivost lidí na různé odstíny světla se také velice liší - někteří lidé vidí barvy levým okem jinak, než jak je vidí pravým. Aby k těmto probémům nedocházelo, tak profesionální práce grafika vyžaduje kalibraci monitoru a formáty obrázku obsahující data barevného profilu; ale pixelová kresba barevné profily neřeší a je prohlížena neprofesionály na nezkalibrovaných displejích - takže pro práci s nimi je nejlepší pracovat s průměrem. Předpis z ITU-R doporučení 709, které je použito v mtPaintu, pracuje dobře ve většině případů. Gamma korekce je provedena převedením každé RGB komponenty každého pixelu na jeho odpovídající jasovou úroveň použitím výše zmíněného předpisu, smícháním těchto úrovní dohromady jak daná operace zpracování vyžaduje a převedením výsledku zpět na RGB.

Gamma korekce je nabídnuta jako možnost místo toho, aby byla použita vždy, protože uživatel může ji může chtít vypnout kvůli lepšímu zachování malých tmavých detailů na jasném pozadí, které by se jinak ztratily v oslnění. Také, protože mnoho jiných programů, jako GIMP nemají gamma korekci a uživatel může vyžadovat identické výsledky s těmito programy.

Gamma korekci můžete trvale zapnout nastavením přepínače v okně voleb. Zde je obrázek, který byl zmenšen s a bez gamma korekce:

Gamma korekce tohoto typu je také použitá v jiných funkcích, jako je volná rotace, efekt zaostřovací masky a efekt škály šedi.

## 6.3 Rotace

Je možné otáčet obrázek rychle po 90 stupních, nebo dle jakéhokoliv úhlu. Například můžete mít fotku, která není úplně rovná a v tomto případě můžete zkusit následující postup:

- Spočítejte potřebný úhel otočení použitím vyznačovacího obdélníku roztaženého z jednoho konce rové čáry na druhý (od vlevo dole nahoru doprava) a následně odečtěte úhel na stavové liště - v našem případě 12.1 stupně:

- Rotujte funkcí v menu Obrázek a vložte záporný úhel potřebný pro narovnání obrázku, jako -12.1 zde:

  ## 6.4 Změna velikosti plátna

  Pokud chcete zvětšit, nebo zmenšit šířku, či výšku obrázku, můžete to provést stisknutím klávesy 'Page Down'.

  ## 6.5 Úprava Gamma, Jasu, Kontrastu, Saturace, Odstínu

  Pokud chcete upravit barvu obrázku, můžete to provést stiskem klávesy 'Insert'. Zde také najdete funkci redukce bitů barev umožňující snížení počtu barev v obrázku.

  ## 6.6 Aplikování efektů

  Menu Efekty vám umožní aplikovat různé efekty na aktuální obrázek. Typ efektů, které jsou k dispozici závisí na tom, jestli upravujete obrázek s indexovanou paletou, nebo RGB obrázek.

  ### 6.6.1 Baktérie

  Zde je ukázka efektu Baktérie, co provede na patřičně připraveném obrázku:

  ### 6.6.2 Škála šedi

  mtPaint má dvě metody pro vytvoření obrázku se škálou šedi. Je zde jednoduchá metoda převodu a také verze s gamma korekcí, jak je popsána v sekci 6.2.1. Zde je vizuální porovnání:

  | Originální obrázek
  | Ve škále šedi
  | Ve škále šedi (s Gamma korekcí)

  ### 6.6.3 Zaostřovací maska

  Zaostřovací maska je speciální typ metody zaostření, který se více hodí pro fotografy, než standardní zaostřovací efekty, kvůli větším možnostem jeho nastavení.

  Hodnota Poloměr řídí, kolik pixelů se zůčastní zaostřovacího procesu. Jestliže má fotografie více jemných detailů, tak bude vhodná nižší hodnota. Když se poloměr nastaví na moc velkou hodnotu, tak se okolo hran objeví kruhy.

  Hodnota množství řídí, jak moc se obrázek zaostří. Čím vyšší hodnota, tím bude výsledný obrázek ostřejší.

  Prahová hodnota nastaví minimální rozdíl mezi pixely před aplikováním zaostření. Tuto hodnotu lze použít jako ochranu oblastí s jemnými přechody před poškozením zaostřovacím procesem, třeba modrá obloha.

  ### 6.6.4 Gaussovo rozmazání

  Zde je vizuální příklad Gaussova rozmazání s různým nastavením hodnot X/Y:

  | Originální obrázek
  | X = 10, Y = 0
  | X = 0, Y = 10

  ## 6.7 Isometrické Transformace

  Funkce v menu Efekty vám umožní transformovat plochý obrázek na izometrický. Například zde je původní obrázek následován dalším s efektem 'Levá strana dolů':

  Tento obrázek je vytvořen s pomocí původního obrázku a dále aplikací funkcí 'Dolní strana vpravo' a následně 'Levá strana dolů':

  ## 6.8 Konverze RGB palety na indexovanou

  Z technických, nebo uměleckých důvodů může být vhodné převést RGB obrázek na obrázek s indexovanou paletou. mtPaint má mnoho nástrojů, jak toho docílit s použitím položky 'Převést na indexovaný'. Proces se skládá ze dvou částí: Nejdříve je dané číslo v paletě nastaveno; Následně jsou pixely nakresleny s použitím této palety, aby se co nejvíce blížily originálnímu RGB obrázku. Protože je tento proces aproximací, není řešení úplně perfektní a výsledek se může značně lišit v závislosti na nastavení, které kreslíř předepíše.

  ### 6.8.1 Paleta

  První rozhodnutí, které musíte udělat je kolik budete chtít mít v paletě barev (mezi 2 a 256). Čím více barev zvolíte, tím se bude výsledný obrázek více podobat originálnímu RGB obrázku. Pokud už nemáte paletu připravenou, tak můžete použít kvantizér pro vytvoření přibližné palety. Každý z kvantizérů v mtPaintu má různé výhody a nevýhody, takže nejlepší bude experimentálně zjistit, který pracuje nejlépe na daný obrázek.

  ### 6.8.2 Pixely

  Jakmile máte paletu připravenou, tak mohou být pixely spočítány na nové plátno s indexovanou paletou. Nejjednodušší metoda je vybrat nejbližší barvu v paletě ke každému pixelu, což je volba 'Žádný' v sekci 'Rozechvět'. Ostatní metody používají techniky rozechvění šíření pixelů pro dosažení pro oko hezčího výsledku.

  Režimy 'Rozechvělý' a 'Rozptýlený' jsou jako speciální efekty a jejich výsledky jsou trochu stylizované a mohou trochu změnit podobu originálu. Pro praktické použití je vhodný 'Floyd-Steinberg (rychlý)', který podává dobré výsledky pro rozsáhlejší palety jako tyto vytvořené Kvantizací na 64 barev a více.

  'Floyd-Steinberg' a 'Stucki' jsou více pokročilé režimy, které rozhazují pixely dle parametrů provedeného pod tlačítkem 'Nastavení'. Stucki vzory mají tendenci být hrubé, s více pixely mimo barvu. Zde je popis, co dělá každá z ostatních voleb:

  Barevný prostor definuje, jak jsou barvy porovnávány. Jsou zde tři, kde každý zdůrazňuje rozdílné aspekty fyzických barev - přírodně, na účet ostatních aspektů. Z tohoto důvodu může být každá z nich nejlepší volbou v některých případech a nejhorší v jiných.

  sRGB je měření světla vyzářeného barevným pixelem. Stejně jako dithering manimuluje také se světlem, barvy nejblíže v sRGB produkují co nejmenší rozdíly - což vede k jemnějším výsledkům s velice malou paletou. Ale pro méně vhodné palety se to stane nevýhodou, protože lidské oko vidí rozdíly mezi světlými barvami mnohem méně ostře, než mezi tmavými, takže barvy nejbližší v sRGB nemusí vypadat nebližší pro uživatele.

  RGB je barevný prostor, který používá každý, i když mnoho lidí neví co to je a jak ho správně používat. Narozdíl od sRGB mají RGB hodnoty nelineární vztah ke světlu vyzářenému pixely - a zatímco nejsou přesným měřením jasu, jak ho vnímá člověk, tak jsou k němu nejblíž, víc než sRGB hodnoty. Z tohoto důvodu produkují porovnání v RGB větší aktuální rozdíly, než při použití sRGB - ale výsledky mohou stále vypadat lépe.

  LXN je barevný prostor, který se snaží poskytnout měření, jak člověk aktuálně vnímá rozdíly barev. Ale jeho úspěch v tomto je omezen, což by mělo být očekáváno - nemůže existovat žádné správné měření, protože vnímání barev není vůbec konstantní; různí lidé vidí věci rozdílně, stejná věc v rozdílných podmínkách je viděna rozdílně, atd. Ale když RGB vybere 'nejbližší' barvu, se kterou bude souhlasit jen slepec, tak nás zachrání LXN; Je daleko méně náchylný k nalezení zelené jako nejbližší k červené, nebo k udělání podobného nesmyslu. Ale znovu, s LXN budou aktuální rozdíly rozházeny mnohem více, než v případě RGB, takže výsledné vzorkování bude mnohem citelnější.

  Rozdíl měření definuje, co lze považovat za rozdíl mezi dvěma barvami ve vybraném barevném prostoru. Většinou to lze nechat napokoji s výchozí tradiční Euclidean vzdáleností; ale někdy se to hodí jako poslední možnost, takže je vždy naděje. 'Největší' používá jako vzdálenost největší rozdíl v souřadnicích mezi třemi souřadnicemi a 'Suma' používá absolutní hodnoty všech těchto tří rozdílů sečtených dohromady.

  Redukce plýtvání barvami se snaží zastavit rozdíly propagace, než se stanou škodlivými a vytvoří viditelné artefakty, místo vylepšení toho, jak obrázek vypadá. Výchozí volba 'Gamut' interferuje nejméně; udrží každou barvu-plus-rozdíl v limitech palety, takže rozdíl nemůže růst nekonečně - to udrží rozdíly zaznamenatelné v jednom pixelu, zabránění takovým věcem, jako mimobarevné okraje okolo jednobarevných oblastí. Volba 'Slabě' navíc udrží rozdíl sám o sobě na takové hodnotě, aby nebyl víc jak polovina maximálního jasu; a 'Silně' ji udrží ještě víc, na jedné čtvrtině maxima. To lze použít pro předcházení mimobarevých pixelů, kde by způsobily více škody, než užitku, ale já preferuji vyladit místo toho chybu propagace.

  Serpentinový scan ynamená, že každá druhá řádka je zpracovávána v opačném směru. Obvykle je to nejlepší volba, protože rozdíly jsou distribuovány střídavě z leva do prava a z prava do leva, bez shromažďování na pravé straně a bez vytváření viditelných artefaktů. Ale jsou zde případy, kde vykreslení nashromážděných rozdílů někde na pravé straně je lepší, než přehození zpět do leva - potom může být serpentinový scan vypnutý.

  Chyba propagace řídí, jaké procento rozdílu vyvstane z každého pixelu, který byl předistribuován. Obyčejně jsou to všechny - 100%; ale pro ne úplně dobře palety, jejíž časté změny nemůžou ovlivnit dost blízkých pixelů a místo toho nepoužitelně akumulují, dokud nezpůsobí některý vzdálený pixel barvu mimo místo. Zabránit tomuto chování lze tím, že omezíme úroveň propagace. Nejčastější rada je nastavit ji na 75%, ale já jsem vyzkoušel, že 85% podává prakticky stejné výsledky; obrázky jsou mnohem čistší, až na ty celkově tmavší. Ty obvykle vypadají lépe, když se použije algoritmus Stucki.

  Ale omezením chyby propagace není vždy nejlepší volba; ideální řešení by mělo být pouze utlumení nepoužitelných a škodlivých případů, kde zachování těchto rozdílů zlepší vyzuální kvalitu. Selektivní chyba propagace se tomu blíží, co nejvíc, jak je to možné v akceptovatelném čase a omezení místa.

  Selektivní chyba propagace vyžaduje zpracování rozdílu barev ne vzdálenějších, než sousední pixely; jestliže to v nich není vloženo, měly by být zahozeny. Ale problém je ten, že vstupní rozdíl a originální barva pixelu jsou sečteny dohromady a potom je barva pixelu vybrána s ohledem na tuto vlastnost, takže jak rozhodnout která část zbývajícího rozdílu náleží pixelu samotnému a má být propagován dál a která část je ze vstupního rozdílu a má být vyhozena? Čtyři podivně vypadající režimy, které vydíte jsou čtyři různé cesty k rozumnému vyřešení tohoto nevyřešitelného problému.

  V každém případě je rozdíl rozdělen na část vstupního rozdílu do jednoho lokálního (později rozdíl, který má zbýt, bude mít vstupní rozdíl nulu). Ale v režimech 'Separovat' jsou složky červená, zelená a modrá váženy odděleně a rozdělení tomu odpovídá - a v režimech 'Délka' jsou jako váhy použité rozdílové vektory stejné pro všechny tři komponenty.

  Druhá polovina jmen režimů se vztahuje ke zpracování vstupního rozdílu, který nemá žádný vliv na přijaté barvy pixelů; v režimech 'Součtových' jsou rozdíly stále váženy a rozděleny, jako nahoře a 'Rozdílové' režimy jednoduše kompletně zahodí vstupní rozdíly a zpropagují ten lokální.

  I když jsou výsledné čtyři režimy jen lehce rozdílné, jsou zde stále případy, kde jeden z nich pracuje lépe, nebo hůře než druhý; ale který z nich je nejlepší na daný obrázek lze rozpoznat pouze jejím vyzkoušením.

  Pokud je selektivní propagace zapnutá, řídí posuvník chyby propagace, kolik procent vstupního rozdílu bude zachováno, i když má být zahozen; ve výchozím stavu je to 0. ale může být nastaven na 75%, nebo 85% pro více rozlišitelnou variantu redukované celkové chybové propagace.

  Selektivní propagace je nejčastěji potřebná v obrázcích s velkým rozlišením konvertovaných do ne-moc-padnoucí palety. Pro malý obrázek konvertovaný z jedné palety do druhé, řekněme, že červená oblast bude lehce tmavší, ale stále jemná je jednoznačně lepší, než stejná oblast popepřená bílými pixely; a selektivní propagace zabrání těmto nešťastným případům, ale stále nám umožní překonvertovat řekněme růžovou oblast na šachovnicový vzorek červených a bílých pixelů.

  ### 6.8.3 Příklady

  A - Originál.

  B - 8 barev, s použitím aktuální palety, Floyd-Steinberg (rychlý).

  C - 8 barev, s použitím aktuální palety, Floyd-Steinberg.

  D - 8 barev, s použitím aktuální palety, Floyd-Steinberg, RGB barevný prostor, separovat/rozdělit na 50% chyby propagace.

  E - 8 barev, DL3 Kvantování, Floyd-Steinberg.

  ### 6.8.4 Tipy a triky

  #### 6.8.4.1 Saturace

  Někdy Kvantizéry produkují plošší a méně barevné výsledky, které jsou nežádoucí. Tomu lze někdy zabránit zvýšením saturace obrázku s použitím okna 'Transformace Barev' před konvertováním originálního obrázku.

  #### 6.8.4.2 Manuální výběr barev

  Pokud provádíte redukci počtu barev RGB obrázku jen na pár, řekněme 16, tak může Kvantizér zahodit několik důležitých barev, které chcete mít v indexovaném obrázku. Můžete manuálně zabránit tomuto problému tímto postupem:

- Redukujte počet barev na 14 použitím 'Paleta -> Nastavit počet barev'.
- Vyberte 'Paleta -> Vytvořit Kvantované' s použitím vybraného Kvantizéru.
- Zvětšete počet barev na 16.
- S použitím nástroje kapátko v paletě, vyberte dvě další barvy z plátna.
- Použijte 'Obrázek -> Převést na indexovaný' s 'Použít aktuální paletu' a vaší vybranou metodou rozechvění.

  #### 6.8.4.3 Nastavení rozmazání

  nastavení rozechvění pro Floyd-Steinberg a Stucki vyžaduje experimentování s každým obrázkem pro dosažení nejlepšího výsledku, ale já používám následující nastavení pro jejich dobré výsledky s mnoha různými typy fotografií:

- sRGB barevný prostor, 75% chyba propagace, Separovat rozdělit.
- RGB barevný prostor, 50% chyba propagace, Separovat rozdělit.
- RGB barevný prostor, 75% chyba propagace.
- RGB barevný prostor, 85% chyba propagace.