Przezroczystość kolorów
Przezroczystość mówi, ile tła ma prześwitywać przez piksel. Formaty radzą sobie z nią na dwa sposoby: albo piksel jest w całości przezroczysty lub nie (GIF), albo ma płynny stopień krycia, kanał alfa (PNG, WebP, AVIF).
Przezroczystość binarna w GIF
GIF nie ma kanału alfa. Zamiast tego jeden numer z palety można oznaczyć jako przezroczysty. Robi to blok sterowania grafiką ($F9): jeden bit włącza przezroczystość, a jeden bajt podaje numer koloru. Piksele z tym numerem nie są rysowane, więc widać przez nie to, co było pod spodem.
Wada: brzeg jest albo kryjący, albo przezroczysty. Wygładzona krawędź napisu przygotowana na białym tle ma piksele pośrednie między kolorem napisu a bielą. Na ciemnym tle te piksele tworzą jasną obwódkę (halo).
Kanał alfa
Kanał alfa to czwarta składowa piksela, α, od 0 (całkiem przezroczysty) do 1 (kryjący). PNG zapisuje go jako pełny kanał w RGBA albo, dla obrazów z paletą, jako blok tRNS z osobnym α dla każdej pozycji palety.
Złożenie piksela z tłem opisuje operator "over" (Porter i Duff, 1984):
Przykład: 50% krycia na bieli i czerni
#c85028 z α = 0,5:
Różnica jest wyraźna, zwłaszcza na czerni. Fizycznie poprawne jest składanie w świetle liniowym (zob. korekcja gamma). Przeglądarki i CSS składają jednak domyślnie na wartościach sRGB, więc projektanci przyzwyczaili się do tamtego wyglądu. Ważne, żeby w jednym projekcie trzymać się jednej metody.
Alfa premultiplikowana
Wiele programów przechowuje kolor już przemnożony przez α: zamiast (R, G, B, α) zapisuje (α·R, α·G, α·B, α). Wzór "over" upraszcza się wtedy do:
Zalety: szybsze składanie, poprawne skalowanie i rozmywanie (przezroczyste piksele nie "przeciekają" swoim kolorem na sąsiadów). Wada: przy małym α tracimy dokładność koloru. PNG zapisuje alfa zawsze bez premultiplikacji, więc programy przeliczają ją przy wczytywaniu.
Skąd biorą się obwódki
- GIF wygładzony do konkretnego tła i położony na innym tle: piksele pośrednie mają wbudowany kolor starego tła.
- Skalowanie obrazu z alfą bez premultiplikacji: kolor w całkiem przezroczystych pikselach (często czarny) miesza się z sąsiadami i krawędź ciemnieje.
- Zapis do JPEG, który nie ma przezroczystości: przezroczyste piksele zamieniają się w kolor, który akurat w nich był, zwykle czerń albo biel.