2010-04-26 01:53:51 +0000 2010-04-26 01:53:51 +0000
179
179

Aplikacja wiersza poleceń do konwersji SVG do PNG na Mac OS X

Czy istnieją jakieś programy wiersza poleceń, które mogą konwertować SVG do PNG, które działają na Mac OS X?

Edit: Dylan B miał dobrą odpowiedź z ImageMagick. Dla odniesienia, aby zainstalować ImageMagick z obsługą SVG na Mac OS X używając MacPorts, zrób

port install imagemagick +rsvg

Odpowiedzi (6)

251
251
251
2010-05-17 13:32:33 +0000

Lub bez instalowania czegokolwiek:

qlmanage -t -s 1000 -o . picture.svg

Powstanie obrazek.svg.png o szerokości 1000 pikseli.

Testowałem to tylko na OS X 10.6.3.

45
45
45
2010-04-26 02:00:10 +0000

ImageMagick ](http://www.imagemagick.org/script/binary-releases.php#macosx) jest ekstremalnie wszechstronnym edytorem obrazów działającym w wierszu poleceń, który prawdopodobnie rywalizowałby z Photoshopem, gdyby miał, no wiesz, GUI. Ale kto ich potrzebuje :P

Coś takiego jak poniżej przekonwertowałoby .svg na .png, po instalacji:

$ convert picture.svg picture.png

Oryginalny .svg nie jest usuwany.

4
4
4
2014-09-27 08:47:51 +0000

Zrobiłem svgexport używając node/npm do tego, jest to cross-platform i może być tak proste jak:

svgexport input.svg output.png
2
2
2
2019-05-11 18:49:15 +0000

Jeszcze jedna metoda bez instalowania czegokolwiek. Jednak nie w wierszu poleceń.

  1. Otwórz plik .svg w Safari.
  2. Naciśnij alt-command-i aby otworzyć inspektora.
  3. Kliknij prawym przyciskiem myszy na tagu <svg>, wybierz “Capture Screenshot”. (Zauważ, że nie wolno powiększać obrazu.)

P.S. Aby powiększyć obraz .svg, jeśli jest zbyt mały, spróbuj otworzyć plik .svg w edytorze tekstu i dodaj 0 do każdej liczby z wyjątkiem metaatrybutu. Może to być zrobione przez globalne podstawienie regex z (\d+) do $10, gdzie $1 jest placeholderem dla odniesienia wstecznego, na przykład.

1
1
1
2015-06-26 02:48:16 +0000

Polecenie convert w ImageMagick, używając innych parametrów, jest tym, co zrobiło to dla mnie. Oto moje rozwiązanie skryptu wsadowego Bash, który dzieli zadanie na wiele procesów, aby wykorzystać wszystkie twoje rdzenie! Zmodyfikuj według potrzeb.

batchConvertToSVG.sh (przyjmuje liczbę procesów jako argument):

end=$(( $1 - 1 ))
for i in `seq 0 $end`;
        do
            echo Spawning helper $i of $end
                ./convertToSvgHelper.sh $i $1 &
        done

convertToSvgHelper.sh:

n=$1
for file in ./*.svg; do
   filename=${file%.svg}
   echo converting file named $filename
   test $n -eq 0 && convert -format png -resize 74 -background transparent -density 600 $file $filename.png
   n=$((n+1))
   n=$((n%$2))
done
0
0
0
2014-05-02 18:25:58 +0000

Możesz wykonać konwersję wsadową całego folderu plików SVG do PNG. Użyłem interfejsu wiersza poleceń Inkscape, aby uzyskać pliki png o szerokości 80px.

find ~/desktop/toconvert '*.svg' -exec /Applications/Inkscape.app/Contents/Resources/bin/inkscape -z -w 80 -e "{}".png "{}" \;

png zostanie zapisany z oryginalną nazwą *.png