Główna » Kodowanie » Testowanie obsługi SVG w silnikach przeglądarek internetowych [Studium przypadku]

    Testowanie obsługi SVG w silnikach przeglądarek internetowych [Studium przypadku]

    SVG (Scalable Vector Graphics) jest oficjalnie obsługiwany przez wszystkie główne przeglądarki internetowe, w tym Internet Explorer. Wsparcie obejmuje szeroki zakres programów do edycji obrazów, w szczególności Inkscape, który używa SVG jako natywnego formatu (jeśli chcesz odświeżać SVG, kliknij tutaj).

    Ale co dokładnie obsługuje przeglądarka internetowa? Czy wszystkie silniki renderujące wyświetlają pliki SVG i ich funkcje w ten sam sposób? A co z ich zaawansowanymi funkcjami, takimi jak filtry? To właśnie się dowiemy. Zrobiliśmy próbkę nowoczesnych przeglądarek, w tym niektórych mniej znanych, i przetestowałem je za pomocą pliku SVG stworzonego w tym celu.

    Obraz testowy

    Przygotowaliśmy nasze zdjęcie testowe skupiające się na elementach, z których artyści najczęściej korzystają. Wśród testowanych funkcji są: ścieżki tekstowe i ich interakcje, gradienty, filtr rozmycia gaussowskiego i wreszcie zaawansowany filtr kompozytowy ułożony z większej liczby typów filtrów.

    Silniki przeglądarki internetowej

    Miga silnik

    Zaczęliśmy od - zdecydowanie najczęstszego silnika renderującego - Blink. Blink to rodzimy silnik dla przeglądarek Google Chrome i Chromium, Opery i Android WebView. Wszystkie wyżej wymienione przeglądarki testują obrazy w taki sam sposób na testowanych platformach.

    W porównaniu z oryginalnym obrazem produkowanym przez Inkscape, nie było żadnych problemów z wyjątkiem niewielkiej różnicy w renderowaniu efektów filtrów skumulowanych.

    Przeglądarka Wersja Platforma Wynik
    Chrom 43.0.2357.125 Linux
    Opera 30.0.1835.59 Linux
    Opera 30.0.1856.93524 Android
    Opera 30.0.1835.88 Windows
    Chrom 38.0.2125.114 Android
    Chrom 43.0.2357.130 Windows
    Pochodnia 39.0.0.9626 Windows

    Silnik Webkit

    Zgodnie z ostatnimi statystykami użycia przeglądarki trzy pierwsze pozycje nie należą do przeglądarek opartych na webkitach (stan na maj 2015 r.). Jednak ten silnik jest rozpowszechniony wśród programistów. Ponadto istnieją różne implementacje i widelce

    Wszystkie przetestowane przeglądarki wyświetlały nasz plik SVG bez problemów; niemniej jednak zaobserwowano różnice w renderowaniu Specular Lighting, złożonego komponentu filtrującego w porównaniu z Inkscape.

    Przeglądarka Wersja Platforma Wynik
    Safari 8.0.6 System operacyjny Mac
    Wydra 0,9.05 Linux
    QupZilla 1.8.6 Linux
    QupZilla 1.8.6 Windows
    Delfin 10.3.1 Android
    Konqueror 15.04.2 Linux
    przeglądarka UC 10.5.0.575 Android

    Silnik trójząb

    Trident to zastrzeżony silnik używany przez Internet Explorer w wersji 4.0 - 11.0. IE doskonale zinterpretował nasz SVG. Co więcej, wygląd filtra kompozytowego pasuje do oryginalnego obrazu. Przetestowaliśmy także IE 9, drugi najczęściej używany IE (stan na maj 2015 r.) I stwierdziliśmy, że ta wersja ma problemy z rozmyciem gaussowskim i filtrem kompozytowym.

    Nie jest to jednak niespodzianką, ponieważ IE 9 został pierwotnie wydany przed ostatecznym projektem standardu SVG 1.1 SE, w którym oficjalnie dodano efekty filtrów.

    Przeglądarka Wersja Platforma Wynik
    TO ZNACZY 11.0.9600.17843 Windows
    Przeglądarka Wersja Platforma Wynik
    TO ZNACZY 9.0.8112.16421 Windows

    Silnik Gecko

    Gecko to silnik opracowany przez Mozilla Corporation, a więc używany w przeglądarce internetowej Firefox lub kliencie poczty e-mail Thunderbird. Jest również używany przez przeglądarki PaleMoon, Waterfox i wiele innych widelców wcześniejszych wersji Firefoksa. W przypadku silnika Gecko wyniki nie były dokładnie takie same na różnych platformach.

    Wersja Windows pokazała niewielki błąd w renderowaniu tekstu wzdłuż ścieżki; ten sam problem zaobserwowano zarówno w przeglądarkach Firefox, jak i PaleMoon. Podobnie jak Webkit, Gecko wydaje się mieć problemy z poprawnym wyświetlaniem prymitywnego filtru Specular Lighting.

    Przeglądarka Wersja Platforma Wynik
    Firefox 38.0.5 Linux
    Firefox 38.0.5 Android
    Blady księżyc 25,5 Android
    Przeglądarka Wersja Platforma Wynik
    Firefox 38.0.5 Windows
    Blady księżyc 25,5 Windows

    Problematyczne przeglądarki

    Jak widać powyżej, wszystkie najnowsze wersje głównych silników renderujących / przeglądarek przeszły nasz test bez większych trudności. Sprawdźmy te, które nie radziły sobie dobrze.

    Maxthon to przeglądarka wieloplatformowa opracowana w Chinach. Według 20 alternatywnych przeglądarek internetowych Fahad Khan dla Windows Maxthon używa zarówno silników Trident, jak i Webkit. Nie zauważyliśmy żadnego problemu z renderowaniem SVG na Linuksie (v. 1.0.5.3) i Windows (v. 4.4.5.3000); jednak na urządzeniu z Androidem nie były wyświetlane rozmycia gaussowskie ani inne prymitywy filtrów.

    Przeglądarka CM wykonywany szybko na naszym testowym urządzeniu Samsung Galaxy S3, ale nie obsługuje również żadnego z efektów filtrów opisanych w specyfikacji SVG 1.1 SE.

    Przeglądarka Wersja Platforma Wynik
    Maxthon 4.4.6.2000 Android
    Przeglądarka CM 5.1.94 Android

    Konqueror jest domyślną przeglądarką dla KDE, jednego z najpopularniejszych środowisk desktopowych Linux. Możliwość renderowania plików SVG w Konquerorze zależy od silnika renderującego. Po włączeniu WebKit nasze testy SVG zostały poprawnie wykonane. Jednak domyślny silnik renderujący Konquerora, KHTML, wydaje się być pozbawiony obsługi kilku funkcji: efekty filtrów nie są stosowane do leżących poniżej obiektów i znaczników końca obrysu, a tekst wzdłuż obiektów ścieżki lub wzorca nie jest w ogóle renderowany.

    Przeglądarka Wersja Platforma Wynik
    Konqueror KHTML 15.04.2 Linux

    Wniosek

    W naszym teście skupiliśmy się na wsparciu formatu SVG w nowoczesnych silnikach renderujących. Przetestowaliśmy 4 główne silniki renderujące i 15 różnych przeglądarek, w tym popularne, takie jak Maxthon lub Dolphin. Prawie wszystkie aktualne wersje przeglądarek przeszły nasz test i trudno jest wybrać ostatecznego zwycięzcę.

    Wygląda na to, że wsparcie i poprawne układanie prymitywów filtrów to ostatnie wyzwanie dla współczesnych silników renderujących. Kiedy porównamy nasz oryginalny obraz SVG ze wszystkimi renderowanymi wynikami, subiektywnie wyznaczamy IE 11 (silnik Trident) na pierwsze miejsce.

    Jednak jasne jest, że silnik Blink jest w pogoni za tym i dlatego zalecamy przeglądarkę opartą na Blink do renderowania plików SVG. Jeśli chcesz wykonać szybki test swojej ulubionej przeglądarki, skorzystaj z naszej strony testowej renderer SVG tutaj.

    Nota redaktora: Ten wpis jest napisany dla Hongkiat.com przez Michala Rosta. Michał pracuje jako programista w firmie biomedycznej, ale poświęca swój wolny czas na rozwijanie aplikacji open source i portali internetowych non-profit. Jest założycielem skalablegfx. Możesz go znaleźć na Twitterze.