Podstawy pracy z bitmapami

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Podczas pracy z obrazami cyfrowymi użytkownik może spotkać się z dwoma rodzajami grafiki: grafiką wektorową oraz bitmapową. Grafika bitmapowa, zwana również rastrową, jest złożona z niewielkich kwadratów (pikseli) tworzących siatkę prostokątną. Grafiki wektorowe natomiast składają się z generowanych matematycznie kształtów geometrycznych, takich jak linie, krzywe i wielokąty.

Bitmapy definiuje się szerokością i wysokością obrazu, mierzoną w pikselach, oraz liczbą bitów zawartych w każdym pikselu, reprezentujących liczbę kolorów, jakie piksel może zawierać. W przypadku obrazów bitmapowych korzystających z modelu kolorów RGB na piksele składają się trzy bajty: czerwony, zielony i niebieski. Każdy z tych bajtów zawiera wartość z przedziału od 0 do 255. Kombinacja bajtów w pikselu powoduje wygenerowanie zabarwienia na zasadzie mieszania barw. Na przykład piksel zawierający następujące wartości: czerwony-255, zielony-102 oraz niebieski-0 przyjmie żywy pomarańczowy kolor.

Jakość obrazu bitmapowego determinuje kombinacja rozdzielczości obrazu oraz wartości bitów głębi kolorów. Rozdzielczość odpowiada liczbie pikseli, z jakiej składa się obraz. Im większa liczba pikseli, tym wyższa rozdzielczość, i tym dokładniejszy obraz. Głębia koloru odpowiada ilości informacji, jakie można zawrzeć w pikselu. Na przykład obraz o głębi koloru wynoszącej 16 bitów na piksel nie może reprezentować tej samej liczby kolorów, co obraz o głębi koloru wynoszącej 48 bitów. W efekcie obraz 48-bitowy będzie charakteryzował się znacznie łagodniejszymi przejściami kolorów, niż jego odpowiednik 16-bitowy.

Ze względu na związek jakości z rozdzielczością bitmapy źle znoszą skalowanie. Szczególnie widoczne jest to w przypadku próby powiększania bitmapy. Powiększanie bitmapy prowadzi wówczas najczęściej do utraty szczegółów i ogólnego pogorszenia jakości obrazu.

Formaty plików bitmap

Obrazy bitmapowe można podzielić na kilka głównych formatów. Formaty te wykorzystują różne typów algorytmów kompresji zmniejszającej rozmiar plików, a także z optymalizacji jakości obrazu w oparciu o docelowe zastosowanie obrazu. Środowiska wykonawcze obsługują następujące formaty obrazów bitmapowych: BMP, GIF, JPG, PNG i TIFF.

BMP

Format BMP (bit zmapowany) jest domyślnym formatem obrazu używanym przez system operacyjny Microsoft Windows. W tym formacie nie jest używany stosowany rodzaj algorytmu kompresji i dlatego pliki w tym formacie zwykle mają znaczne rozmiary.

GIF

Format GIF (ang. Graphics Interchange Format) został opracowany przez firmę CompuServe w roku 1987 jako metoda rejestracji obrazów 256-kolorowych (kolor 8-bitowy). Format ten charakteryzuje się niewielkim rozmiarem plików i idealnie sprawdza się w przypadku obrazów w sieci Web. Ze względu na ograniczoną paletę kolorów obrazy w formacie GIF zazwyczaj nie najlepiej nadają się na zdjęć, które wymagają szczególnej głębi obrazu i dużego gradientu koloru. Obrazy GIF mogą natomiast przenosić informację o przezroczystości poszczególnych bitów — dzięki możliwości odwzorowania kolorów jako „brak” (czyli przezroczystość). W efekcie tłem takiego obrazu w miejscach, dla których zdefiniowano brak koloru (= przezroczystość) staje się kolor strony sieci Web.

JPEG

Opracowany przez grupę ekspertów Joint Photographic Experts Group (JPEG) format JPEG (często używany jest również zapis JPG) wykorzystuje algorytm kompresji stratnej umożliwiający upakowanie obrazów o dużej, 24-bitowej głębi w pliku o niewielkim rozmiarze. Kompresja stratna oznacza, że każde zapisanie obrazu powoduje pogorszenie jego jakości i utratę części danych, z drugiej jednak strony zmniejsza wielkość pliku. Format JPEG to idealne rozwiązanie dla osób wykonujących zdjęcia, umożliwia bowiem zapisanie i wyświetlenie milionów kolorów. Możliwość sterowania stopniem kompresji obrazu pozwala użytkownikowi manipulować jakością obrazu oraz rozmiarem pliku.

PNG

Format PNG (ang. Portable Network Graphics) został opracowany jako alternatywa typu „open-source” dla opatentowanego formatu GIF. Obrazy PNG obsługują głębię kolorów do 64-bitów co pozwala na wyświetlenie 16 milionów kolorów. Ze względu na fakt, że PNG jest formatem relatywnie nowym, niektóre starsze przeglądarki nie obsługują plików tego formatu. W przeciwieństwie do formatu JPG format PNG korzysta z kompresji bezstratnej, co oznacza brak utraty danych obrazu podczas jego zapisywania. Pliki PNG obsługują również przezroczystość alfa, co umożliwia wyświetlenie do 256 poziomów przezroczystości.

TIFF

Format TIFF (Tagged Image File Format) był formatem stosowanym w różnych platformach przed wprowadzeniem formatu PNG. Wadą formatu TIFF jest to, że z powodu wielu różnych odmian formatu TIFF nie ma jednego programu do odczytu, który mógłby obsługiwać wszystkie wersje. Ponadto ten format nie jest aktualnie obsługiwany przez żadną przeglądarkę sieci Web. W formacie TIFF może być używana kompresja stratna lub bezstratna, a format może obsługiwać przestrzenie kolorów urządzeń (np. CMYK).

Bitmapy przezroczyste i nieprzezroczyste

Obrazy bitmapowe w formacie GIF lub PNG mogą charakteryzować się dodatkowym bajtem (kanałem alfa) dodanym do każdego piksela. Ten dodatkowy piksel reprezentuje wartość przezroczystości.

W przypadku obrazów GIF obsługiwana jest przezroczystość jednobitowa, co oznacza, że możliwe jest wybranie pojedynczego koloru z palety 256 kolorów, który odpowiada przezroczystości. Z drugiej strony, obrazy PNG mogą charakteryzować się nawet 256 poziomami przezroczystości. Funkcja ta jest szczególnie przydatna w przypadku obrazów lub tekstu, które powinny wtapiać się w tło.

ActionScript 3.0 replikuje ten dodatkowy piksel przezroczystości w klasie BitmapData. Podobnie jak w przypadku modelu przezroczystości formatu PNG, ActionScript oferuje do 256 poziomów przezroczystości.

Ważne pojęcia i terminy

Na poniższej liście zebrano ważne terminy używane w omówieniach dotyczących grafiki bitmapowej.

Alfa
Poziom przezroczystości (a dokładniej: nieprzezroczystości) koloru lub obrazu. Wielkość alfa jest często określana jako wartość kanału alfa .

Kolor ARGB
Schemat kolorów, gdzie kolor każdego z pikseli stanowi mieszankę kolorów: czerwonego, zielonego i niebieskiego, przy czym jego przezroczystość jest określona wartością alfa.

Kanał koloru
Zazwyczaj kolory są otrzymywane i reprezentowane przez zmieszanie kilku kolorów podstawowych — w przypadku grafiki komputerowej są to zwykle kolory: czerwony, zielony i niebieski. Każdy kolor podstawowy jest uważany za kanał koloru. Ostateczny kolor jest uzyskiwany przez zmieszanie ilości kolorów w poszczególnych kanałach.

Głębia koloru
Znana również jako głębia bitowa , odnosi się do ilości pamięci obliczeniowej zajętej danymi definiującymi pojedynczy piksel, co z kolei determinuje liczbę kolorów, jaką można odwzorować na obrazie.

Pixel
Najmniejsza jednostka informacji na obrazie bitmapowym — mówiąc najprościej, kropka koloru.

Rozdzielczość
Wyrażona w pikselach wielkość obrazu, która determinuje poziom szczegółowości obrazu. Rozdzielczość jest często wyrażana jako iloczyn liczby pikseli szerokości i wysokości obrazu.

Kolor RGB
Schemat kolorów, gdzie kolorowi każdego piksela przypisana jest mieszanka wartości kolorów: czerwonego, zielonego i niebieskiego.