2012-03-02 23 views
45

Chcę konwertować obrazy SVG do plików PNG z przezroczystym tłem i wygładzonymi krawędziami (przy użyciu półprzezroczystych pikseli). Niestety nie mogę uruchomić ImageMagick'a, by zrobić antyaliasing, krawędzie zawsze wyglądają okropnie. Oto, co próbowałem:Konwersja SVG do przezroczystego PNG z antyaliasingiem, użycie ImageMagick

convert +antialias -background transparent in.svg -resize 25x25 out.png 

Jakieś pomysły lub inne narzędzie wiersza poleceń, którego mogę użyć?

Odpowiedz

48

Inkscape będzie to zrobić:

inkscape \ 
    --export-png=out.png --export-dpi=200 \ 
    --export-background-opacity=0 --without-gui in.svg 
+1

Pierwsze znalezione rozwiązanie, które zachowuje paletę kolorów niektórych plików SVG, np. logo Apache NiFi (https://nifi.apache.org/assets/images/apache-nifi-logo.svg). – timss

15

Właściwie czytanie dokumentacji ImageMagick:

-antialias

Włącz/Wyłącz o świadczenie antyaliasingu pikseli podczas rysowania linii i czcionek . Domyślnie podczas rysowania obiekty (np. Tekst, linie, wielokąty itp.) Są antyaliasingowane. Użyj antyaliasingów +, aby wyłączyć dodawanie pikseli krawędzi wygładzania. Spowoduje to zmniejszenie liczby kolorów dodanych do obrazu tylko do kolorów bezpośrednio narysowanych. Oznacza to, że mieszane> kolory są dodawane podczas rysowania takich obiektów.

się + Wygładzanie rzeczywiście wyłączenie antyaliasingu.

59

Na marginesie uważam, że uzyskanie przejrzystości było nieco trudne. Zamiast używać przezroczystego , musiałem użyć none.

convert -background none in.svg out.png 
+0

Przynajmniej w tym czasie (6.8.6) działa również z _transparent_. –

+3

Zarówno "brak", jak i "przezroczystość" tworzą dla mnie nieprzejrzyste białe tło. Nieprzezroczyste. Używam 6.8.8-3 na Macu – petrsyn

+2

'-background none' pracował dla mnie, ImageMagick 6.8.6-6 na mac – commonpike

Powiązane problemy