Průhlednost (grafická) - Transparency (graphic)

GIF animace balení apollonské koule s průhledným pozadím

Transparentnost je možná v řadě formátů grafických souborů. Pojem „průhlednost“ používají různí lidé různými způsoby, ale v nejjednodušším případě existuje „úplná průhlednost“, tj. Něco, co je zcela neviditelné. Pouze část grafiky by měla být plně průhledná, jinak by nebylo nic vidět. Složitější je „částečná průhlednost“ nebo „průsvitnost“, kde se dosáhne efektu, že grafika je částečně průhledná stejným způsobem jako barevné sklo. Vzhledem k tomu, že vytištěná stránka nebo obrazovka počítače nebo televize může mít v určitém okamžiku pouze jednu barvu, je částečná průhlednost vždy na určité úrovni simulována mícháním barev. Existuje mnoho různých způsobů míchání barev, takže v některých případech je průhlednost nejednoznačná.

Průhlednost je navíc pro grafický formát často „extra“ a některé grafické programy ji budou ignorovat.

Animovaná 8bitová průhlednost PNG ( APNG )

Mezi formáty rastrových souborů, které podporují průhlednost, patří GIF , PNG , BMP , TIFF , TGA a JPEG 2000 , a to buď prostřednictvím průhledné barvy, nebo alfa kanálu .

Většina vektorových formátů implicitně podporuje průhlednost, protože se jednoduše vyhýbají umístění libovolných objektů v daném bodě. To zahrnuje EPS a WMF . U vektorové grafiky to nemusí být striktně považováno za průhlednost, ale vyžaduje to hodně pečlivého programování jako průhlednost v rastrových formátech.

Složitější vektorové formáty mohou umožňovat kombinace průhlednosti mezi prvky v grafice i výše. To zahrnuje SVG a PDF .

Vhodný editor rastrových grafik zobrazuje průhlednost pomocí speciálního vzoru, např. Šachovnicového vzoru.

Průhledné pixely

Tento obrázek má binární průhlednost (některé pixely zcela průhledné, jiné pixely zcela neprůhledné). Může být průhledný na jakémkoli pozadí, protože je černobílý.

Jedna barevná položka v paletě jednoho obrázku GIF nebo PNG může být definována jako „průhledná“ místo skutečné barvy. To znamená, že když dekodér narazí na pixel s touto hodnotou, vykreslí se v barvě pozadí části obrazovky, kde je obrázek umístěn, i když se to mění pixel po pixelu jako v případě obrázku na pozadí .

Aplikace zahrnují:

  • obrázek, který není obdélníkový, lze pomocí průhledného prostředí vyplnit do požadovaného obdélníku; obrázek může mít dokonce díry (např. kruhový tvar)
  • v běhu textu může být speciálnímu symbolu, pro který se používá obrázek, protože není k dispozici ve znakové sadě, přiděleno průhledné pozadí, což vede k odpovídajícímu pozadí.

Průhledná barva by měla být volena pečlivě, aby se zabránilo úbytku položek, které právě mají stejnou barvu.

I tato omezená forma průhlednosti má nerovnoměrnou implementaci, ačkoli nejoblíbenější webové prohlížeče jsou schopné zobrazovat průhledné obrázky GIF. Tato podpora se často nevztahuje na tisk, zejména na tisková zařízení (například PostScript ), která neobsahují podporu průhlednosti v zařízení nebo ovladači. Mimo svět webových prohlížečů je podpora transparentních souborů GIF docela hit-and-miss.

Omezení okrajů průhledných pixelů

Tento obrázek má binární průhlednost. Jde však o stupně šedi s vyhlazováním , takže vypadá dobře pouze na bílém pozadí. Nastaveno na jiné pozadí by mělo za následek efekt „duchů“ z odstínů šedé.

Okraje znaků a jiných obrázků s průhledným pozadím by neměly mít odstíny šedé : obvykle se používají pro přechodné barvy mezi barvou písmena / obrázku a barvou pozadí, obvykle jsou odstíny šedé přechodem mezi černým písmenem a písmenem bílé pozadí. Například s červeným pozadím by však mezilehlé barvy byly tmavě červené. Šedé okrajové pixely by poskytly ošklivý a nejasný výsledek. Pro proměnnou barvu pozadí neexistují žádné vhodné pevné mezilehlé barvy.

Částečná průhlednost alfa kanály

Tento obrázek má částečnou průhlednost (254 možných úrovní průhlednosti mezi plně průhlednou a zcela neprůhlednou). Může být transparentní na jakémkoli pozadí, přestože je vyhlazený.

Některé formáty obrázků, jako jsou PNG a TIFF, také umožňují částečnou průhlednost prostřednictvím kanálu alfa, což řeší problém s omezením okrajů. Místo toho, aby každý pixel byl buď průhledný, nebo neprůhledný, lze jej nastavit na 254 úrovní částečně průhledného, ​​což umožňuje, aby se některý obrázek pozadí zobrazoval přes obraz v popředí.

Hlavní použití částečné průhlednosti je vytvoření „měkkých hran“ v grafice tak, aby splývaly s jejich pozadím. Viz také černobíle nebo s odstíny šedé a vyhlazováním . Částečnou průhlednost lze také použít k tomu, aby byl obrázek méně výrazný, například vodoznak nebo jiné logo; nebo k vykreslení něčeho průhledného, ​​například strašidelného zjevení ve videohře. Animace alfa kanálu v programu pro úpravy obrázků umožňuje plynulé přechody mezi různými obrázky.

Proces kombinování částečně průhledné barvy s pozadím („skládání“) je často špatně definovaný a výsledky nemusí být ve všech případech úplně stejné. Například pokud se používá barevná korekce, měly by se barvy skládat před nebo po barevné korekci?

Tento obrázek ukazuje výsledky překrytí každého z výše uvedených průhledných obrázků PNG na barvu pozadí # 6080A0. Všimněte si šedých okrajů na písmenech prostředního obrázku.
To ukazuje, jak by výše uvedené obrázky vypadaly, kdyby je například upravovaly. Šedý a bílý kontrolní vzor by byl převeden na průhlednost.

Průhlednost ořezovou cestou

Alternativním přístupem k úplné průhlednosti je použití cesty ořezu . Ořezová cesta je jednoduše tvar nebo obrys, který se používá ve spojení s ostatními grafikami. Všechno uvnitř cesty je viditelné a vše mimo cestu je neviditelné. Cesta je ze své podstaty vektorová, ale lze ji potenciálně použít k maskování vektorových i bitmapových dat. Hlavní použití ořezových cest je v souborech PostScript.

Skládání výpočtů

Zatímco některé specifikace průhlednosti jsou vágní, jiné mohou poskytnout matematické podrobnosti o tom, jak se mají skládat dvě barvy. To poskytuje poměrně jednoduchý příklad toho, jak mohou skládat výpočty fungovat, jak přinést očekávané výsledky, a také překvapení.

V tomto příkladu mají být složeny dvě barvy ve stupních šedi. Za hodnoty ve stupních šedi se považují čísla mezi 0,0 (bílá) a 1,0 (černá). Zdůraznit: toto je pouze jedno možné pravidlo transparentnosti. Pokud pracujete s průhledností, zkontrolujte pravidla používaná pro vaši situaci.

Barva v bodě, kde mají být kombinovány barvy G1 a G2, je ( G1 + G2 ) / 2. Některé důsledky jsou:

  • Tam, kde jsou barvy stejné, je výsledkem stejná barva, protože ( G1 + G1 ) /2 = G1.
  • Pokud je jedna barva (G1) bílá (0,0), je výsledkem G2 / 2. To bude vždy menší než jakákoli nenulová hodnota G2, takže výsledek je bělejší než G2. (Toto lze snadno změnit v případě, že G2 je bílá).
  • Pokud je jedna barva (G1) černá (1,0), výsledkem je ( G2 + 1 ) / 2. To bude vždy více než G2, takže výsledek je černější než G2.
  • Vzorec je komutativní, protože ( G1 + G2 ) / 2 = ( G2 + G1 ) / 2. To znamená, že nezáleží na tom, jaké pořadí jsou dvě grafiky smíchány, tj. Která z nich je nahoře a která dole.
  • Vzorec není asociativní, protože
( ( G1 + G2 ) / 2 + G3 ) / 2 = G1 / 4 + G2 / 4 + G3 / 2
( G1 + ( G2 + G3 ) / 2 ) / 2 = G1 / 2 + G2 / 4 + G3 / 4

To je důležité, protože to znamená, že když kombinujete tři nebo více objektů s tímto pravidlem pro průhlednost, konečná barva velmi závisí na pořadí provádění výpočtů.

I když je vzorec jednoduchý, nemusí být ideální. Lidské vnímání jasu není lineární - nutně nebereme v úvahu, že hodnota šedé 0,5 je na půli cesty mezi černou a bílou. Na takových detailech nemusí záležet, když se průhlednost použije pouze ke změkčení hran, ale u složitějších návrhů to může být významné. Většina lidí, kteří pracují s průhledností vážně, budou muset vidět výsledky a mohou si hrát s barvami nebo (pokud je to možné) s algoritmem, aby dosáhli požadovaných výsledků.

Tento vzorec lze snadno zobecnit na RGB barvu nebo CMYK barvu použitím vzorce pro každý kanál zvlášť. Například finální red = ( R1 + R2 ) / 2. Nelze jej však použít na všechny barevné modely. Například laboratorní barva by přinesla překvapivé výsledky.

Alternativním modelem je, že v každém bodě každého prvku, který má být kombinován pro průhlednost, je přidružená barva a krytí mezi 0 a 1. Pro každý barevný kanál můžete pracovat s tímto modelem: pokud kanál s intenzitou G2a krytím T2překrývá kanál s intenzitou G1a neprůhledností T1bude výsledkem kanál s intenzitou rovnou (1 - T2) * G1 + G2a opacitou 1 - (1 - T2) * (1 - T1). Každý kanál musí být před složením vynásoben odpovídající hodnotou alfa (tzv. Premultiplied alpha ). Specifikace souboru SVG používá tento typ míchání a toto je jeden z modelů, které lze použít v PDF.

Alfa kanály mohou být implementovány tímto způsobem, kde alfa kanál poskytuje úroveň neprůhlednosti, která se použije stejně na všechny ostatní kanály. Chcete-li pracovat s výše uvedeným vzorcem, je třeba změnit krytí na rozsah 0 až 1, bez ohledu na jeho externí reprezentaci (často 0 až 255, pokud používáte 8bitové vzorky, například „RGBA“).

Průhlednost v PDF

Počínaje verzí 1.4 standardu PDF ( Adobe Acrobat verze 5) je podporována průhlednost (včetně průsvitnosti). Transparentnost v souborech PDF umožňuje tvůrcům dosáhnout různých efektů, včetně přidávání stínů k objektům, vytváření poloprůhledných objektů a míchání objektů do sebe nebo do textu. PDF podporuje mnoho různých režimů prolnutí , nejen nejběžnější metodu průměrování, a pravidla pro skládání mnoha překrývajících se objektů umožňují volby (například to, zda je skupina objektů smíchána před smícháním s pozadím, nebo zda je smíchán každý objekt) do pozadí).

Průhlednost PDF je velmi složitý model, jehož původní specifikace od Adobe je dlouhá přes 100 stránek. Klíčovým zdrojem komplikací je, že míchání objektů s různými barevnými prostory může být složité a náchylné k chybám, stejně jako způsobit problémy s kompatibilitou . Transparentnost v PDF byla navržena tak, aby nezpůsobovala chyby v prohlížečích PDF, které jí nerozuměly - jednoduše by zobrazily všechny prvky jako zcela neprůhledné. Jednalo se však o dvousečný meč, protože uživatelé se staršími diváky, tiskárnami PDF atd. Mohli vidět nebo vytisknout něco úplně jiného než původní design.

Skutečnost, že model průhlednosti PDF je tak komplikovaný, znamená, že není dobře podporován. To znamená, že RIP a tiskárny mají často problémy s tiskem PDF s průhledností. Řešením je buď rastrování obrazu, nebo použití vektorového zploštění průhlednosti na PDF. Sloučení průhlednosti vektoru je však extrémně složité a podporuje ho pouze několik specializovaných balíčků.

Transparentnost v PostScriptu

Jazyk PostScript má omezenou podporu plné (ne částečné) průhlednosti, v závislosti na úrovni PostScript. Částečná průhlednost je k dispozici s příponou pdfmark, která je k dispozici v mnoha implementacích PostScript.

Úroveň 1

Úroveň 1 PostScript nabízí průhlednost dvěma způsoby:

  • S jednobitovým (černobílým) obrazem lze zacházet jako s maskou. V tomto případě mohou být 1 bity natřeny libovolnou jednou barvou, zatímco 0 bity nejsou natřeny vůbec. Tuto techniku ​​nelze zobecnit na více než jednu barvu nebo na vektorové tvary.
  • Lze definovat ořezové cesty. Ty omezují, jakou část všech následujících grafik lze vidět. To lze použít pro jakýkoli druh grafiky, avšak na úrovni 1 byl maximální počet uzlů v cestě často omezen na 1 500, takže složité cesty (např. Ostříhání vlasů na fotografii hlavy osoby) často selhaly.

Úroveň 2

PostScript úrovně 2 nepřidává žádné specifické funkce průhlednosti. Použitím vzorů však lze libovolnou grafiku vykreslit pomocí masek definovaných libovolnými vektorovými nebo textovými operacemi. Toto je však složité implementovat. Kromě toho to příliš často dosáhlo implementačních limitů a tuto techniku ​​někdy nabídlo jen málo aplikačních programů.

Úroveň 3

Úroveň 3 PostScript přidává další možnost průhlednosti pro jakýkoli rastrový obrázek. Lze použít průhlednou barvu nebo rozsah barev; nebo lze použít samostatnou 1bitovou masku pro poskytnutí alfa kanálu.

Zapouzdřený PostScript

Soubory EPS obsahují PostScript, který může být na úrovni 1, 2 nebo 3 a využívá výše uvedené funkce. Drobnější problém nastává u náhledů souborů EPS, které se obvykle používají k zobrazení pohledu souboru EPS na obrazovce. Existují životaschopné techniky pro nastavení průhlednosti v náhledu. Například náhled TIFF může používat alfa kanál TIFF. Mnoho aplikací však tyto informace o průhlednosti nepoužívá, a proto bude náhled zobrazovat jako obdélník. Poloproprietární technika propagovaná ve Photoshopu a přijatá řadou předtiskových aplikací je uložit ořezovou cestu na standardní místo EPS a použít ji pro zobrazení.

Kromě toho několik programů, které generují náhledy EPS, vygeneruje informace o průhlednosti v náhledu.

Některé programy se to snažily obejít tím, že všechny bílé v náhledu považovaly za průhledné, ale to je také problematické v případech, kdy některé bílé nejsou průhledné.

V poslední době se objevují aplikace, které zcela ignorují náhled; proto získají informace o tom, které části náhledu se mají malovat interpretací PostScriptu.

Viz také

Reference

externí odkazy