Piksele, nutki i strumienie
-
- 01.03.2007
Po dwudziestu dwóch latach od wprowadzenia graficznego interfejsu użytkownika i szybkiego zróżnicowania metod wizualizacji na ekranie i na papierze wreszcie doczekaliśmy się ich powtórnego połączenia. I to jednocześnie w dwóch wersjach.
Po dwudziestu dwóch latach od wprowadzenia graficznego interfejsu użytkownika i szybkiego zróżnicowania metod wizualizacji na ekranie i na papierze wreszcie doczekaliśmy się ich powtórnego połączenia. I to jednocześnie w dwóch wersjach.

Windows 3.0 w 1990 roku nie imponował wyszukanymi krojami czcionek. Prezent od Adobe w postaci TrueType otrzyma dopiero za rok.
Cofnijmy się do roku 1984, w którym nie Adobe, nie Microsoft, tylko Steve Jobs udostępnił pierwszy komputer Apple Macintosh z wbudowanym graficznym interfejsem użytkownika (GUI). W ten sposób stało się możliwe wypełnianie, za pomocą dowolnych kształtów zbudowanych z pikseli, nie tylko papieru w drukarce, ale - co okazało się nie mniej ważne - także ekranu monitora, rządzonego dotąd przez prymitywny i mało elastyczny tryb tekstowy. Starsi pamiętają, ile zachodu kosztowało chociażby zmuszenie komputera do wyświetlania w tym trybie polskich znaków. Od chwili udostępnienia trybu graficznego można było uważać ekran za kartkę papieru, na której można tworzyć różne kształty za pomocą czarnych punktów na białym tle, podobnie jak w drukarce. To wymagało potraktowania całego ekranu jak mapy bitowej z adresowalnym dostępem do każdego piksela. Kosztem skomplikowania dostępu stało się możliwe wyświetlanie rysunków, a także stosowanie wielu krojów czcionek. Opcje komponowania układu strony znacznie się wzbogaciły.
Małżeństwo i rozwód
Pierwsze Macintoshe i specjalnie do nich skonstruowane drukarki igłowe ImageWriter żyły w idealnej symbiozie. W obu używano bitmapy w rozdzielczości 72 dpi, dzięki czemu tych samych fontów można było używać na ekranie i papierze. Jednak wkrótce wyszły na jaw niekorzystne skutki tej unifikacji. Jakość druku okazała się bardzo słaba, a bitmapowe czcionki nie poddawały się skalowaniu. W efekcie pamiętane musiały być nie tylko bitowe reprezentacje liter w rozmaitych krojach pisma, ale także do każdego z nich mniejsze i większe duplikaty. Szczególnie przy wprowadzaniu większej rozdzielczości cały system błyskawicznie dławił się od nadmiaru danych i odmawiał posłuszeństwa. Impas przezwyciężono w następnym roku, przeprowadzając w Adobe transformację języka PostScript PDL (Page Description Language) z postaci bitowej na programowalną - wektorową. PostScript opisywał zarówno układ graficzny strony, jak i skalowane czcionki za pomocą reguł matematycznych, a nie tablic bitowych. Każda strona w tym języku jest programem, którego wykonanie tworzy wizualizację o pożądanym wyglądzie. Jeśli wszystkie elementy bitmapowe uda się zamienić na taki program, wtedy prezencja strony staje się uniwersalna i niezależna od rozdzielczości, właściwości urządzenia obrazującego i platformy, na której pracuje. Do realizacji tego pomysłu opracowano w Adobe w pełni skalowalny system "zarysów" krojów pisma Type 1, zapisany w PostScripcie i wykonywalny tylko na urządzeniu interpretującym ten język.

Błędy w konstrukcji czcionek ujawniają się po ich przekształceniu z postaci wektorowej na bitmapę w różnej skali. W pierwszym rzędzie widać nierówną grubość ukośników po zrenderowaniu do wymiaru 18-pikselowego, w drugim niedopasowanie ukośnika ze znakiem procentu do reszty. W trzecim rzędzie akcenty są zbyt lekkie, w czwartym rzędzie powiększających się znaków widać, że szósty z nich uległ kompresji. To też efekt błędu w konstrukcji czcionek.
Ten słodki obraz zepsuła brutalna rzeczywistość. Okazało się, że drukowanie na papierze jest mniej skomplikowane od pisania na ekranie. W pierwszym wypadku mamy pojedynczą kartkę o dobrze znanych rozmiarach, w drugim - wiele mniejszych i większych okien wyświetlanych w różnej skali. DPS powinien współpracować z różnymi systemami operacyjnymi, na przykład z uniksowym X Windows, a każdy z nich dodaje swoje wymagania, co jeszcze bardziej komplikuje współdziałanie. Przecież DPS powinien obsługiwać albo przekazywać głębiej do systemu polecenia użytkownika, rozpoznawać oraz interpretować wskazania myszy i umożliwiać wstawianie kodu Display PostScript np. do funkcji w języku C. W porównaniu do drukarkowego PostScriptu skomplikowanie i wymagania dotyczące mocy niezbędnej do przetwarzania rosną przynajmniej o rząd wielkości.
Odwracanie kota
Niekiedy zalety Display PostScriptu zamieniały się w poważne wady. Paradoksalnie za jego najsilniejszą stronę uchodziła możliwość elastycznego odwzorowania bardzo dobrych skalowalnych fontów, bogatych w szczegóły, ale ten atut stawał się przyczyną niepowodzenia w wypadku wybrania czcionki o niewielkich wymiarach do wyświetlania na ekranie o niskiej rozdzielczości. Po prostu w miarę zmniejszania wielkości zaczynało brakować pikseli do odwzorowania wszystkich szczegółów. Niektóre elementy liter, dotychczas jednakowe, zaczynały różnić się grubością, a nawet zanikały całkowicie. W tej skali lepiej spisywały się fonty bitmapowe i właśnie takie dodatki, dopasowane krojem do oryginałów wektorowych, uzupełniły zestawy czcionek Type 1. Niestety, te pomocnicze bitmapy były dostosowane do 300 dpi, typowych dla drukarek LaserWriter, i w niższej rozdzielczości ekranowej nie spełniały swego zadania. Dochodziło nawet do tego, że gdy zawodziło automatyczne zmniejszanie, wektorowy z założenia DPS posługiwał się ręcznie narysowanymi czcionkami bitmapowymi.
W końcu ekranowa wersja PostScriptu na rynku stacji roboczych znalazła sobie niszę na przetrwanie, ale okazała się zbyt odległa od możliwości przetwarzania i wyświetlania na ekranach pecetów, wchodzących właśnie w okres niepodzielnego panowania na rynku, żeby trafić do głównego nurtu. Żaden z wielkich producentów nie zdecydował się powierzyć Adobe opieki nad krytyczną częścią swego komputera i jeszcze płacić za licencję.