Czy to już Matrix?

Szukamy drogi w obcym mieście. W oknie przeglądarki najbliższego “kiosku internetowego” wpisujemy adres serwera przechowującego lokalne dane kartograficzne…

…na monitorze wyświetlony zostaje szczegółowy plan miasta. Zaznaczamy interesujący nas obszar, wybieramy opcję wydruku. Futurologia…? Niekoniecznie…

W poprzednim numerze (12/2000, s. 242), w artykule poświęconym przyszłości technologii Flash pojawiły się ogólne informacje na temat języka SVG (Scalable Vector Graphics). Dziś spróbujemy bliżej przyjrzeć się temu nowemu formatowi zapisu grafiki.

Grafika generowana “w locie”

Idea SVG, języka opisu dwuwymiarowej grafiki wektorowej zawartej na stronie WWW, narodziła się w lutym 1999 roku w konsorcjum W3C. Pierwsza specyfikacja SVG bazowała na wcześniejszych projektach języków opartych na matematycznym opisie grafiki – PGML (Precision Graphics Markup Language) i VML (Vector Markup Language) – oraz doświadczeniach twórców technologii Flash. Język SVG stanowi więc kolejne podejście do wykorzystania grafiki wektorowej do prezentacji danych w Sieci. Tym razem jednak próba ta ma szansę zakończyć się sukcesem, gdyż technologia SVG daje dużo większe możliwości niż jej protoplaści. Wynikają one przede wszystkim z oparcia kodu SVG na obiektowym modelu struktury dokumentu – DOM, składni elastycznego języka XML oraz integracji z innymi standardami W3C – CSS 2 i XSL (eXtensible Stylesheet Language) oraz Javą. W największym uproszczeniu – główną ideą twórców SVG jest opisanie między znakami <> i </> grafiki zawartej na stronie WWW, w podobny sposób jak HTML opisuje zawarty na niej tekst. Kod SVG ma być docelowo interpretowany przez przeglądarkę internetową na każdej platformie sprzętowej i systemowej, a opisana w nim grafika – generowana i wyświetlana na podstawie informacji zawartych w kodzie. Obecnie za obsługę tych procesów odpowiadają specjalne wtyczki.

Obrazki w formacie SVG są w pełni skalowalne, mają niewielkie rozmiary i doskonale wyglądają po wydrukowaniu. Ich elementy mogą być w łatwy sposób modyfikowane, ponieważ wszystkie informacje – zarówno o sposobie wyświetlania, jak i obsłudze związanych z nimi zdarzeń – zawarte są w kaskadowych arkuszach stylów CSS 2 lub XSL, kodzie Java Scriptu, JSP lub innych języków skryptowych. Informacje te umieszczane są, identycznie jak w przypadku HTML-a, w obrębie dokumentu lub w zewnętrznym pliku. W stylach definiować możemy wszystkie charakterystyczne dla grafiki wektorowej właściwości, takie jak np. kolor i rodzaj wypełnienia (także gradientowe lub wzorem), kolor i grubość obrysu lub poziom przezroczystości, z warstw zaś – tworzyć osobne klasy. Reguły stosowania stylów są identyczne jak w przypadku HTML-a i XML-a – style mogą być definiowane w nagłówku pliku, w obrębie pojedynczego znacznika lub w zewnętrznym zbiorze. Przygotowanie przez projektanta kilku arkuszy stylów, z których każdy zawierał będzie osobny zbiór informacji o sposobie wyświetlania całej witryny, pozwoli internautom wybierać dla niej skórę odpowiednią do własnych upodobań.

Podobnie jak w przypadku Flasha, obiekty graficzne SVG mogą być animowane za pomocą różnego rodzaju technik, do których należy m.in. popularny tweening – tj. płynna transformacja jednego obiektu w drugi. Bieżąca specyfikacja SVG obejmuje także przypisywanie poszczególnym elementom graficznym filtrów i efektów zdefiniowanych w kodzie języka, podobnych do tych, jakie znamy z Photoshopa. W kodzie SVG umieszczać można również odsyłacze do plików dźwiękowych w formacie MP3 lub WAVE.

Jedną z największych korzyści, jakie daje technologia SVG, jest jednak wynikająca z jej XML-owych korzeni możliwość generowania kodu “w locie”, na podstawie informacji pobieranych np. z baz danych. Trudno dziś przewidzieć, jak wiele zastosowań znajdzie SVG, jeśli chodzi o sposoby prezentacji danych w Sieci.

Narzędzia, wtyczki, edytory

Obecnie jedynym sposobem obejrzenia w Sieci witryn wykorzystujących SVG jest “ściągnięcie” i instalacja opracowanej przez firmę Adobe wtyczki SVG Viewer (dostępnej w wersji 2.0 beta na stronie producenta oraz CHIP-CD 12/2000). Oferuje ona oprócz wyświetlania plików svg w oknie przeglądarki internetowej możliwość wykorzystania tych samych skrótów klawiaturowych, które dostępne są w innej wtyczce Adobe – Acrobat Reader. Inne wtyczki SVG to: CSIRO SVG Viewer, IBM SVG Viewer lub Jackaroo australijskiej firmy Koala.

Tak niewiele kodu potrzeba, by wygenerować w programie Jasc Trajectory Pro postać popularnego Duke’a – maskotki języka Java.

Najważniejszym narzędziem, potrzebnym do samodzielnego tworzenia grafiki w formacie SVG, jest… dowolny edytor tekstu, którym może być zarówno Notatnik Windows, jak i bardziej zaawansowane narzędzia (np. HomeSite ). Jeśli nie chcemy wgłębiać się w tajniki kodu SVG, możemy skorzystać z dedykowanych temu językowi programów. W środowisku Windows są to: darmowa aplikacja Jasc Trajectory Pro lub shareware’owy program Mayura Draw. W środowisku Linuksa możemy posłużyć się programami Source Forge Sketch lub Source Forge Sodipodi. Wszystkie te aplikacje znajdują się także na dołączonym do tego numeru CHIP-a krążku CD.

Jeśli przyzwyczajeni jesteśmy do pracy z takimi “kombajnami” do obróbki grafiki wektorowej, jak CorelDRAW 10 czy Adobe Illustrator 9, skorzystać możemy z zawartej w tych programach funkcji eksportu pliku do formatu SVG. W systemie Linux taką funkcję ma m.in. program KIlustrator 0.7.2. Należy jednak pamiętać, że kod SVG generowany przez te aplikacje nie należy do “najczystszych” i często wymaga dokonania ręcznych poprawek, tak więc przynajmniej minimalna znajomość SVG może okazać się niezbędna. Najlepsze w tym przypadku źródło wiedzy stanowi opis języka SVG dostępny na witrynie W3C.

Kto za tym wszystkim stoi?

Specyfikacja SVG opracowywana jest przez grupę roboczą W3C, w skład której wchodzą przedstawiciele ok. 20 firm – takich gigantów rynku IT, jak IBM, Sun, Apple, Adobe, Corel, Autodesk czy Quark. Oprócz nich również wiele prywatnych osób różnych narodowości, skupionych wokół list dyskusyjnych, angażuje się w pracę nad SVG. Dzięki interakcji między twórcami nowej technologii a jej przyszłymi odbiorcami testowane są możliwości i zgłaszane uwagi związane z ewentualnymi ograniczeniami języka. Taka współpraca służy więc nie tylko jego doskonaleniu, ale również tworzy pierwsze środowiska eksperckie, które w przyszłości przekażą wiedzę szerszemu gronu osób. Na wielu stronach internetowych już dziś znaleźć można przykłady praktycznych zastosowań SVG oraz galerie grafiki zapisanej w tym formacie.

Ze strony grupy roboczej W3C do najbardziej aktywnych promotorów idei SVG zaliczają się przede wszystkim Sun, Adobe i Autodesk. Aby wesprzeć rozwój języka, firma Sun oferuje pakiet napisanych w Javie, darmowych narzędzi, dedykowanych programistom pragnącym tworzyć aplikacje związane z SVG – Slide Toolkit (przekształca plik XML w prezentacje slajdów w formacie SVG) oraz Graphics2D Generator. Podobny pakiet narzędzi oferuje również CSIRO – SVG Toolkit można pobrać bezpłatnie ze strony firmy. Na witrynie firmy Sun znaleźć możemy dodatkowo kurs projektowania systemów dynamicznego generowania grafiki w formacie SVG na bazie technologii JSP. Wykorzystanie tego rozwiązania może mieć duże znaczenie dla wszystkich dziedzin, w których istotną rolę odgrywa szybka wizualizacja danych – do najważniejszych z nich należą m.in. medycyna i elektronika.

Z Sieci na papier, z papieru do Sieci

Bardzo duże wsparcie dla SVG zadeklarowała również korporacja Adobe. Do popularyzacji nowego formatu mocno przyczyniły się stworzenie przez jej programistów wtyczki SVG Viewer oraz wyposażenie najnowszej wersji Illustratora w możliwość eksportu grafiki bezpośrednio do tego formatu. Innym krokiem Adobe w stronę rozwoju języka jest idea skupienia społeczności projektantów SVG wokół stworzonego na macierzystej stronie firmy serwisu pod nazwą SVG Zone. Równie istotny pomysł stanowi dążenie do integracji języka SVG z formatem PDF, co według przedstawicieli firmy pozwoli w przyszłości konwertować w trybie online strony WWW, zakodowane w języku SVG do PDF-a, a następnie drukować je ze znakomitą jakością.

Na witrynie http://www. pinkjuice.com/ SVG/ zobaczymy, jakie cuda można wyczarować za pomocą SVG.

Myśląc o przyszłej integracji dokumentów elektronicznych i papierowych, warto wspomnieć o konwerterze plików qxd (format zapisu danych wykorzystywany w programie do składu komputerowego Quark-XPress) do svg, opracowanym przez programistów firmy Quark. W wyniku prac grupy roboczej W3C, dotyczących tzw. webfonts (formatu czcionek przeznaczonego do wykorzystania w Sieci), powstał także konwerter czcionek TrueType do formatu SVGFont. Te rozwiązania mogą przyczynić się wkrótce do powstania nowego modelu kompleksowej obsługi klienta w agencjach reklamowych, które oferować będą mogły przygotowanie jednolitego projektu – od wizytówki poczynając, a na witrynie WWW kończąc. Na popularyzację SVG wpływa także powstawanie kolejnych narzędzi konwertujących dane (z czego wiele w trybie online) do postaci SVG m.in. z formatu SWF (ShockWave Flash), WMF (Windows MetaFile) czy PICT (używany w systemie Mac OS).

Jednym z głównych zainteresowanych rozwojem języka SVG jest firma Autodesk – potentat rynku oprogramowania CAD/CAM oraz GIS (Geographic Information System). Generowane przez popularne programy z rodziny AutoCAD oraz GIS pliki dwg i dxf, zawierające dane architektoniczne i kartograficzne, zapisane są w formacie opartym na schemacie wektorowym. Dzięki opracowanemu przez Autodesk konwerterowi tych plików do formatu SVG możliwe będzie umieszczenie danych w Sieci i ich prezentacja z poziomu przeglądarki internetowej. Już dziś dostępne są w Internecie plany m.in. Moskwy oraz Karlsruhe. Zatem polecenie, jakie wydaje Morfeusz w jednej ze scen filmu “Matrix”: “Potrzebuję szczegółowego planu tego budynku, szybko!” zostanie zrealizowane wcześniej niż w roku 2199… Futurologia? Niekoniecznie… Choć na fali entuzjazmu dla rozwoju nowych technologii coraz trudniej odróżnić bliską rzeczywistość od wizji rodem z produkcji science-fiction.

Wizje przyszłości

Droga technologii od idei do standardu jest dość długa – obecnie język SVG ma status W3C Candidate Recommendation (kandydat na kandydata) – jednak przewodzący grupie roboczej Chris Lilley przewiduje, że jeszcze w tym roku SVG uzyska status Final Recommendation, a już na początku przyszłego ma szansę stać się oficjalnym standardem W3C. Jeśli tak się stanie, kolejnym krokiem na drodze rozwoju i popularyzacji formatu w Sieci będzie implementacja kodu SVG w przeglądarkach internetowych. Przyszły los języka znajdzie się w rękach ich producentów – przede wszystkim firm Microsoft i Netscape, których przedstawiciele również uczestniczą w pracach nad SVG. Miejmy nadzieję, że nie zdecydują się oni, tak jak w przypadku technologii CSS i Java Script, na własną interpretację kodu języka i że SVG stanowić będzie prawdziwy standard opisu grafiki w Sieci.

Co dalej? Idea SVG została powitana z otwartymi ramionami przez inną grupę roboczą W3C – twórców technologii VRML (Virtual Reality Modeling Language), języka opisu grafiki trójwymiarowej. Następna wersja jego specyfikacji, przewidywana na rok 2002, ma być w poważnym stopniu zintegrowana z SVG. Choć droga od dwu- do trójwymiarowej grafiki w Sieci wydaje się otwarta, obecnie stanowi jedynie pieśń przyszłości. Jednak jakże piękna to pieśń! Jeśli się na dobre rozmarzyć, to na monitorze wspomnianego we wstępie “kiosku internetowego” wyobrazić sobie można wymodelowane w technologii 3D wnętrza interesujących nas miejsc… Futurologia? Niekoniecznie… Być może całkiem nieodległa przyszłość, czego sobie i wszystkim (nie tylko internautom) życzę w dwudziestym pierwszym wieku.

Info
Grupy dyskusyjne
Uwagi i komentarze do artykułu:
#
Pytania techniczne:
#
Internet
Oficjalna strona języka SVG
http://www.w3.org/Graphics/SVG/Overview.htm8
Specyfikacja języka SVG
http://www.w3.org/TR/2000/CR-SVG-20001102/index.html
Serwis firmy Sun poświęcony SVG
http://www.sun.com/software/xml/developers/svg/
Adobe SVG Viewer
http://www.adobe.com/svg/viewer/install/beta.html
SVG Zone – centrum promocji formatu SVG przez Adobe
http://www.adobe.com/svg/
Witryna w całości wykonana przy użyciu SVG
http://www.battlebots.com/
Galeria grafiki w formacie SVG
http://www.pinkjuice.com/SVG/
W dziale Aktualności | Tendencje znajdują się programy opisane w tekście: Source Forge Sketch 0.6.8, Source Forge Sodipodi 0.20, Jasc Trajectory Pro 0.30, Mayura Draw 3.6
Więcej:bezcatnews