Questão Aplicativo de linha de comando para converter SVG em PNG no Mac OS X


Existem programas de linha de comando que podem converter um SVG em PNG, executado no Mac OS X?

Editar: Dylan B teve uma boa resposta com o ImageMagick. Para referência, para instalar o ImageMagick com suporte a SVG no Mac OS X usando MacPorts,

port install imagemagick +rsvg

125


origem


Eu encontrei uma maneira se você tem o Google Chrome ... e não há necessidade de instalar outras coisas: superuser.com/questions/134679/… - 太極者無極而生


Respostas:


Ou sem instalar nada:

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

Produzirá picture.svg.png com 1000 pixels de largura.

Eu testei apenas no OS X 10.6.3.


183



Infelizmente isso filma as imagens em um quadrado. - Martijn Pieters
Ah, qlmanage -t dá a miniatura usada pelo Quick Look (no Finder, etc). Ideia inteligente. Infelizmente, essas miniaturas podem ser problemáticas, especialmente quando há texto envolvido. - ShreevatsaR
Isso produz imagens com o arquivo svg no 1º quadrante. Não corta automaticamente. Tentando converter arquivos do projeto substantivo - gostaria que isso funcionasse. - Alex Cook
Essa solução não leva em conta a transparência. A ferramenta rsvg-convert na resposta do @ ahti funcionou antes para mim. - BenR
Colocar os parâmetros de largura e altura após o -s opção não funcionou para mim. Ainda corta para um quadrado. Muito frustrante! - Erik van der Neut


Eu achei que para mim a melhor ferramenta para o trabalho é rsvg-convert.

Ele pode ser encontrado em cerveja com brew install librsvg e é usado assim:

rsvg-convert -h 32 icon.svg > icon-32.png

(Este exemplo cria um png alto de 32px. A largura é determinada automaticamente.


71



Este é o único que funcionou para mim no Mavericks e commons.wikimedia.org/wiki/… - Aron Ahmadia
Na verdade, este funcionou, enquanto o ImageMagick convert emitiu erros e não conseguiu converter um SVG complexo - Brice
Esta é de longe a melhor solução que encontrei para o OS X Yosemite +1! - Greg Martin
Isso falhou em alguns dos meus SVGs, estranhamente. o qlmanage resposta funcionou para todos eles, mas colocar um fundo branco, que eu não quero. - sudo
Com rsvg-convert, o .png resultante tinha as dimensões certas, mas a imagem saiu toda preta em vez das cores originais. Com qlmanage a imagem é cortada para um quadrado. Ainda procurando por uma solução :-( - Erik van der Neut


ImageMagick é um extremamente editor de imagens de linha de comando versátil, que provavelmente rivalizaria com o Photoshop se tivesse, você sabe, uma GUI. Mas quem precisa disso de qualquer maneira. : P

Algo como o seguinte iria converter um .svg para .png, após a instalação:

$ convert picture.svg picture.png

O arquivo .svg original não é excluído.


34



isto tipo de tem uma GUI, em display. - Ignacio Vazquez-Abrams
Quando eu instalei o ImageMagick com o Fink, não consegui converter svg para png - houve alguns erros. Descobri que eu precisava instalar o librsvg2-bin também. - tst
Se librsvg2-bin não estiver instalado (como no OS X), isso falhará. Não foi possível encontrar uma maneira de instalá-lo no OS X. - John Sheehan
Isso não funcionará bem se você quiser redimensionar o SVG, pois gera imagens borradas. - Behrang
Ele não converte todos os arquivos SVG corretamente; pelo menos qlmanage tem todas as partes da imagem. - Johan


Inkscape com o seu interface de linha de comando produz os melhores resultados para mim:

/Applications/Inkscape.app/Contents/Resources/bin/inkscape --export-png output.png -w 1024 -h 768 input.svg

O bom é que você pode especificar o tamanho exato do pixel da imagem resultante, sem ter que mexer com a densidade.


25



isso está funcionando para mim! - Eu tenho um SVG maior criado com o Inkscape - matheszabi
Este é o único método que processou o meu svg escrito à mão corretamente - Griffin
O Convert não gera bons arquivos PNG a partir do SVG. Usar o Inkscape é a melhor maneira que encontrei até agora. - ol_v_er
Isso funciona para mim, mas cria arquivos extremamente desfocados. - Marcin
Eu tive um problema para encontrar arquivos para executá-lo como inkscape $(pwd)/logo.svg --export-png $(pwd)/logo.png - Andrei


OK, eu encontrei uma maneira simples de fazer isso no Mac, se você tem o Google Chrome.

Em uma frase, é para ver o svg imagem em uma página da Web (deve estar em um html arquivo), clique com o botão direito do mouse na imagem e escolha "Copiar imagem" e cole no aplicativo "Visualizar".

Passos:

  1. Faça o download ou tenha o svg arquivo no seu disco rígido, digamos, somefile.svg
  2. Agora, na mesma pasta, basta fazer um arquivo html tmp.html que contém esta linha: <img src="somefile.svg">
  3. Agora, abra esse arquivo html no Google Chrome
  4. Você deveria ver a imagem. Agora basta clicar com o botão direito na imagem e escolher "Copiar Imagem"
  5. Vá para o aplicativo de visualização do Mac e escolha "File -> New from Clipboard"
  6. Agora File -> Save o arquivo e você tem o png Arquivo. (ou outros tipos de arquivos).

Isso é testado no atual Chrome (versão 48.0) no Mac OS X El Capitan.

Atualizar: Não tenho certeza se é devido a alguma restrição imposta pelo Google Chrome. Eu apenas experimento um arquivo SVG usando o Chrome 58.0 e recebo uma imagem minúscula do método acima. Se você ver este caso também, você também pode usar

<img src="somefile.svg" style="height: 82vh; margin-top: 9vh; margin-left: 9vh">

e você terá uma imagem na tela boa o suficiente para você fazer uma captura de tela - usando CmdMudança4 ou CmdMudança3 no Mac, por exemplo. Certifique-se de redimensionar a janela do Chrome para o máximo permitido na tela.


11



Solução inteligente! - Manu
Isso realmente produz os melhores resultados para mim, uma vez que processa exatamente o mesmo que o navegador. - Jason Haslam
a imagem resultante foi muito má resolução para mim - Michael


Se você quiser fazer muitas de uma vez, você pode:

mogrify -format png *.svg

Há opções para redimensionar etc on the fly, também ..


4



mogrify também é par do ImageMagick. - ShreevatsaR
Funciona muito bem, mas brutalmente lento. - Meekohi
-1? Alguém acha que isso não é útil? Qual o erro? - DefenestrationDay
Eu não sou aquele que downvoted, mas digno de nota é que ImageMagick estupidamente converte svg para uma imagem raster de tamanho arbitrário antes de redimensionar, resultando em saída embaçada. - Dae


Experimentar Apache Batik.

java -jar batik-rasterizer.jar FILES

Ele também suporta conversão em lote e tem muitas outras opções úteis.


3





eu fiz svgexport usando node / npm para isso, é multi-plataforma e pode ser tão simples como:

svgexport input.svg output.png

2



Este foi o mais fácil de usar e lembrar de longe. Além disso, o único que produziu um resultado correto no meu caso. - Marko Grešak
a resolução resultante não foi ótima para mim. - Michael