Estou no Linux e gostaria de pegar um arquivo SVG e transformá-lo em um arquivo PNG em uma determinada resolução (dimensionamento). Existe uma maneira de fazer isso de maneira rápida e eficaz a partir da linha de comando?
Estou procurando algo parecido com isto:
svg2png --width 128 --height 128 input.svg output.png
Existe uma ferramenta para isso?
Respostas:
Use o conversor do ImageMagick :
Se o tamanho da tela de entrada for menor que o tamanho especificado, isso aumentará a escala da saída sem nova amostragem. Para obter um resultado de qualidade superior, adicione o
-density
parâmetro:As imagens do Rastreio do ImageMagick vectoriam imagens para sua resolução de tela com uma densidade padrão de 72 dpi.
Para aumentar a escala com a amostragem adequada, você pode especificar um valor acima do normal, como 500 dpi na amostra acima.
Usar uma densidade de varredura muito alta pode ser um problema de desempenho em telas de tamanho grande. A densidade raster mais baixa e ideal é:
raster_density = raster_size / original_size * original_density
Essa densidade raster ideal produzirá a imagem diretamente no tamanho esperado (não é
-resize
necessário). Porém, como podem ocorrer aproximações do número flutuante, um valor ligeiramente mais alto e um redimensionamento são recomendados para obter resultados perfeitos em pixels.Você pode obter o tamanho e a densidade originais usando as porcentagens de escape do ImageMagick :
Observe que o ImageMagick não lida com as especificações completas do SVG. Se tiver problemas com as formas renderizadas incorretamente, consulte este tópico sobre a seleção do renderizador ImageMagick SVG .
fonte
rsvg
a resposta abaixo por conta própria, mas é hora de começar a usar o ImageMagick.convert: unable to read font
os erros (nulo) '@ error / annotate.c / RenderFreetype / 1153`` pelos quais eu resolvibrew install gs
, mas mesmo quando o convert era executado de forma limpa, a imagem resultante era lixo.-background transparent
, caso contrário, converter usa fundo branco.inkscape in.svg --export-png=out.png
(exemplo de superuser.com/a/493028/316154 )Ambos
rsvg
einkscape
podem:E:
fonte