Czy są jakieś programy wiersza polecenia, które mogą konwertować SVG do PNG, działające w systemie Mac OS X?
Edycja : Dylan B miał dobrą odpowiedź z ImageMagick. Dla porównania, aby zainstalować ImageMagick z obsługą SVG w Mac OS X za pomocą MacPorts, wykonaj:
port install imagemagick +rsvg
macos
command-line
png
svg
Lorin Hochstein
źródło
źródło
pip3 install cairosvg
Odpowiedzi:
Lub bez instalowania czegokolwiek:
Wytworzy obraz.svg.png o szerokości 1000 pikseli.
Testowałem to tylko na OS X 10.6.3.
źródło
qlmanage -t
daje miniaturę używaną przez Quick Look (w Finderze itp.). Sprytny pomysł. Niestety te miniatury mogą być wadliwe, szczególnie gdy w grę wchodzi tekst.rsvg-convert
w odpowiedzi @ ahti już wcześniej dla mnie zadziałało.-s
opcji nie działało dla mnie. Nadal przycina go do kwadratu. Bardzo frustrujące!Odkryłem, że dla mnie najlepszym narzędziem do pracy
rsvg-convert
.Można go znaleźć w naparze
brew install librsvg
i jest używany w następujący sposób:(Ten przykład tworzy obraz png o wysokości 32 pikseli. Szerokość jest określana automatycznie.
źródło
convert
popełnił błędy i nie udało się ukryć złożonego SVGqlmanage
Odpowiedź pracował dla nich wszystkich, ale umieścić na białym tle, którego nie chcę.rsvg-convert
, uzyskany plik .png miał odpowiednie wymiary, ale obraz wyszedł całkowicie czarny zamiast oryginalnych kolorów. Dziękiqlmanage
temu obraz jest przycięty do kwadratu. Wciąż szukam rozwiązania :-(ImageMagick to niezwykle wszechstronny edytor obrazów z wiersza poleceń, który prawdopodobnie konkurowałby z Photoshopem, gdyby miał, no wiesz, GUI. Ale kto i tak ich potrzebuje. : P
Coś takiego jak poniżej przekonwertowałoby .svg do .png, po instalacji:
Oryginalny plik .svg nie jest usuwany.
źródło
display
.Inkscape z interfejsem wiersza poleceń daje mi najlepsze wyniki:
Dobrą rzeczą jest to, że możesz określić dokładny rozmiar piksela obrazu wynikowego, bez konieczności mieszania się z gęstością.
źródło
inkscape $(pwd)/logo.svg --export-png $(pwd)/logo.png
OK, znalazłem prosty sposób, aby to zrobić na komputerze Mac, jeśli masz Google Chrome.
W jednym zdaniu ma to na celu zobaczyć
svg
obraz na stronie internetowej (musi znajdować się whtml
pliku), kliknąć obraz prawym przyciskiem myszy i wybrać „Kopiuj obraz” i wkleić do aplikacji Preview.Kroki:
svg
umieść plik na dysku twardym, powiedzmy,somefile.svg
tmp.html
zawierający tę linię:<img src="somefile.svg">
"File -> New from Clipboard"
File -> Save
plik i maszpng
plik. (lub inne typy plików).Jest to testowane na bieżącym Chrome (wersja 48.0) na Mac OS X El Capitan.
Aktualizacja : nie jestem pewien, czy jest to spowodowane jakimś ograniczeniem nałożonym przez Google Chrome. Próbuję tylko pliku SVG w przeglądarce Chrome 58.0 i otrzymuję mały obraz z powyższej metody. Jeśli widzisz także ten przypadek, możesz również użyć
a obraz na ekranie będzie wystarczająco dobry, aby wykonać zrzut ekranu - na przykład za pomocą CmdShift4lub CmdShift3na komputerze Mac. Pamiętaj, aby zmienić rozmiar okna Chrome na maksymalną dozwoloną na ekranie.
źródło
Jeśli chcesz zrobić wiele jednocześnie, możesz:
mogrify -format png *.svg
Istnieją również opcje zmiany rozmiaru itp. W locie ..
źródło
mogrify
jest również równy ImageMagick.Wypróbuj Apache Batik .
Obsługuje również konwersję wsadową i ma wiele innych przydatnych opcji.
źródło
Svgexport stworzyłem do tego za pomocą węzła / npm, jest on wieloplatformowy i może być tak prosty, jak:
źródło
Możesz również użyć phantomjs do renderowania svg. Zaletą jest to, że renderuje to tak, jak przeglądarka, ponieważ jest to w zasadzie bezgłowy zestaw WebKit.
Po pobraniu potrzebujesz phantomjs (plik binarny) i plik rasterizer.js z folderu przykładów.
źródło
brew cask install phantomjs
. W mojej instalacji folder przykładów znajdował się na ścieżce/usr/local/Caskroom/phantomjs/2.1.1/phantomjs-2.1.1-macosx/examples/
.Właśnie tego użyłem:
brew install imagemagick --with-librsvg
Następnie uruchom następujące polecenia:
find . -type f -name "*.svg" -exec bash -c 'convert $0 $0.png' {} \; rename 's/svg\.png/png/' *
Mam nadzieję, że to pomoże.
źródło
Używam tego polecenia na moim systemie Linux. To powinno również działać dla ciebie.
Nauczyłem się, że bez argumentu „-density” mapa bitowa byłaby bardzo pikselizowana. Zmień wartość -density w zależności od potrzeb.
źródło
Komenda konwersji ImageMagick, wykorzystująca inne parametry, właśnie to dla mnie zrobiła. Oto moje rozwiązanie skryptowe partii Bash, które dzieli to zadanie na wiele procesów w celu wykorzystania wszystkich rdzeni! Zmodyfikuj w razie potrzeby.
batchConvertToSVG.sh (przyjmuje jako argument liczbę procesów):
convertToSvgHelper.sh:
źródło
Jak już wcześniej skomentowałem ImageMagick załatwia sprawę. Chciałem tylko dodać punkt do GraphicsMagick , starego rozwidlenia ImageMagick, który ma pewne ulepszenia (i znacznie mniej wzdęcia zależności, gdy jest instalowany przez Fink).
źródło
Możesz wykonać konwersję wsadową dla całego folderu plików SVG do PNG. Użyłem interfejsu wiersza poleceń Inkscape do tworzenia plików png o szerokości 80 pikseli.
png zostanie zapisany z oryginalną nazwą * .png
źródło
Jeszcze jedna metoda bez instalowania czegokolwiek. Jednak nie w wierszu poleceń.
<svg>
znacznik prawym przyciskiem myszy , wybierz „Capture Screenshot”. (Pamiętaj, że nie wolno powiększać obrazu.)PS Aby powiększyć obraz .svg, jeśli jest zbyt mały, spróbuj otworzyć plik .svg w edytorze tekstu i dołącz go
0
do każdej liczby oprócz meta-atrybutu. Można tego dokonać na przykład przez globalne podstawienie wyrażenia regularnego z(\d+)
na$10
, gdzie$1
jest symbol zastępczy dla odwołania wstecznego.źródło
wkhtmltoimage (z projektu wkhtmltopdf) dobrze to przekonwertował:
ImageMagick
renderuje znak CJK jako pusty na moim komputerze Mac.źródło