Existem programas de linha de comando que podem converter um SVG em PNG, executados no Mac OS X?
Edit : Dylan B teve uma boa resposta com o ImageMagick. Para referência, para instalar o ImageMagick com suporte SVG no Mac OS X usando o MacPorts, faça
port install imagemagick +rsvg
macos
command-line
png
svg
Lorin Hochstein
fonte
fonte
pip3 install cairosvg
Respostas:
Ou sem instalar nada:
Ele produzirá picture.svg.png com 1000 pixels de largura.
Eu testei apenas no OS X 10.6.3.
fonte
qlmanage -t
fornece a miniatura usada pelo Quick Look (no Finder, etc.). Ideia inteligente. Infelizmente, essas miniaturas podem ter erros, principalmente quando há texto envolvido.rsvg-convert
na resposta da @ ahti funcionou antes para mim.-s
opção não funcionou para mim. Ainda o corta para um quadrado. Muito frustrante!Eu descobri que para mim a melhor ferramenta para o trabalho é
rsvg-convert
.Pode ser encontrado em brew com
brew install librsvg
e é usado assim:(Este exemplo cria um png de 32px de altura. A largura é determinada automaticamente.
fonte
convert
emitiu erros e não conseguiu ocultar um SVG complexo.qlmanage
resposta funcionou para todos eles, mas colocou um fundo branco, o que eu não quero.rsvg-convert
, o .png resultante tinha as dimensões corretas, mas a imagem saiu toda preta, em vez das cores originais. Comqlmanage
a imagem é cortada para um quadrado. Ainda à procura de uma solução :-(O ImageMagick é um editor de imagens de linha de comando extremamente versátil, que provavelmente rivalizaria com o Photoshop se tivesse uma GUI. Mas quem precisa disso de qualquer maneira. : P
Algo como o seguinte converteria um arquivo .svg em .png, após a instalação:
O original .svg não é excluído.
fonte
display
.O Inkscape com sua interface Commandline produz os melhores resultados para mim:
O bom é que você pode especificar o tamanho exato de pixel da imagem resultante, sem precisar mexer na densidade.
fonte
inkscape $(pwd)/logo.svg --export-png $(pwd)/logo.png
OK, encontrei uma maneira simples de fazer isso no Mac, se você tiver o Google Chrome.
Em uma frase, é para ver a
svg
imagem em uma página da web (deve estar em umhtml
arquivo), clique com o botão direito do mouse na imagem e escolha "Copiar imagem" e cole no aplicativo Visualizar.Passos:
svg
arquivo no seu disco rígido, por exemplo,somefile.svg
tmp.html
que contenha esta linha:<img src="somefile.svg">
"File -> New from Clipboard"
File -> Save
o arquivo e você tem opng
arquivo. (ou outros tipos de arquivo).Isso foi testado no Chrome atual (versão 48.0) no Mac OS X El Capitan.
Atualização : não tenho certeza se é devido a alguma restrição imposta pelo Google Chrome. Acabei de experimentar um arquivo SVG usando o Chrome 58.0 e recebo uma pequena imagem do método acima. Se você vir esse caso também, também poderá usar
e você terá uma imagem na tela suficientemente boa para fazer uma captura de tela - usando CmdShift4ou CmdShift3no Mac, por exemplo. Redimensione sua janela do Chrome para o máximo permitido na tela.
fonte
Se você quiser fazer muitas de uma vez, você pode:
mogrify -format png *.svg
Existem opções para redimensionar etc em tempo real também.
fonte
mogrify
também é par do ImageMagick.Experimente o Apache Batik .
Ele também suporta conversão em lote e tem muitas outras opções úteis.
fonte
Eu fiz o svgexport usando o node / npm para isso, é multiplataforma e pode ser tão simples quanto:
fonte
Você também pode usar phantomjs para renderizar o svg. A vantagem é que ele é renderizado como um navegador, uma vez que é basicamente um WebKit sem cabeça.
Depois de baixá-lo, você precisa de phantomjs (binário) e do arquivo rasterizer.js da pasta de exemplos.
fonte
brew cask install phantomjs
. Na minha instalação, a pasta de exemplos estava localizada no caminho/usr/local/Caskroom/phantomjs/2.1.1/phantomjs-2.1.1-macosx/examples/
.Isto é o que eu usei:
brew install imagemagick --with-librsvg
Em seguida, execute os seguintes comandos:
find . -type f -name "*.svg" -exec bash -c 'convert $0 $0.png' {} \; rename 's/svg\.png/png/' *
Espero que ajude.
fonte
Eu uso esse comando no meu linux. Deve funcionar para você também.
Aprendi que, sem o argumento "-density", o bitmap seria muito pixelizado. Altere o valor -density para atender às suas necessidades.
fonte
O comando convert do ImageMagick, usando alguns outros parâmetros, foi o que fez por mim. Aqui está a minha solução de script em lote do Bash que divide a tarefa em vários processos para usar todos os seus núcleos! Modifique conforme necessário.
batchConvertToSVG.sh (usa o número de processos como argumento):
convertToSvgHelper.sh:
fonte
Como comentado anteriormente, o ImageMagick faz o truque. Eu só queria adicionar um ponto ao GraphicsMagick , um antigo fork do ImageMagick que possui algumas melhorias (e muito menos inchaço da dependência quando instalado via fink).
fonte
Você pode executar uma conversão em lote em uma pasta inteira de arquivos SVG em PNG. Usei a interface de linha de comando do Inkscape para produzir arquivos png com uma largura de 80px.
png será salvo com o nome original * .png
fonte
Outro método sem instalar nada. Não está na linha de comando.
<svg>
tag, selecione "Capturar captura de tela". (Observe que você não deve ampliar a imagem.)PS Para ampliar a imagem .svg, se ela for muito pequena, tente abrir o arquivo .svg no editor de texto e acrescente
0
a cada número, exceto no meta-atributo. Isso pode ser feito por uma substituição de regex global de(\d+)
para$10
, onde$1
é o espaço reservado para referência anterior, por exemplo.fonte
wkhtmltoimage (do projeto wkhtmltopdf) fez isso converter bem:
ImageMagick
renderiza o caractere CJK em branco no meu mac.fonte