¿Hay algún programa de línea de comandos que pueda convertir un SVG a PNG que se ejecute en Mac OS X?
Editar : Dylan B tuvo una buena respuesta con ImageMagick. Como referencia, para instalar ImageMagick con soporte SVG en Mac OS X usando MacPorts, haga
port install imagemagick +rsvg
macos
command-line
png
svg
Lorin Hochstein
fuente
fuente
pip3 install cairosvg
Respuestas:
O sin instalar nada:
Producirá picture.svg.png que tiene 1000 píxeles de ancho.
Lo he probado solo en OS X 10.6.3.
fuente
qlmanage -t
da la miniatura utilizada por Quick Look (en Finder, etc.). Idea inteligente. Desafortunadamente, estas miniaturas pueden tener errores, especialmente cuando hay texto involucrado.rsvg-convert
en la respuesta de @ ahti funcionó antes para mí.-s
opción no funcionó para mí. Todavía lo cosecha en un cuadrado. ¡Muy frustrante!Encontré que para mí la mejor herramienta para el trabajo es
rsvg-convert
.Se puede encontrar en brew with
brew install librsvg
y se usa así:(Este ejemplo crea un png alto de 32 px. El ancho se determina automáticamente.
fuente
convert
emitió errores y no pudo encubrir un SVG complejoqlmanage
respuesta funcionó para todos ellos, pero puso un fondo blanco, que no quiero.rsvg-convert
, el .png resultante tenía las dimensiones correctas, pero la imagen salió completamente negra en lugar de los colores originales. Conqlmanage
la imagen se recorta a un cuadrado. Todavía estoy buscando una solución :-(ImageMagick es un editor de imágenes de línea de comandos extremadamente versátil, que probablemente rivalizaría con Photoshop si tuviera, ya sabes, una GUI. Pero quién necesita esos de todos modos. :PAGS
Algo como lo siguiente convertiría un .svg a .png, después de la instalación:
El .svg original no se elimina.
fuente
display
.Inkscape con su interfaz de línea de comandos produce los mejores resultados para mí:
Lo bueno es que puede especificar el tamaño de píxel exacto de la imagen resultante, sin tener que alterar la densidad.
fuente
inkscape $(pwd)/logo.svg --export-png $(pwd)/logo.png
OK, encontré una manera simple de hacerlo en Mac si tienes Google Chrome.
En una oración, es para ver la
svg
imagen en una página web (debe estar en unhtml
archivo), hacer clic derecho en la imagen y elegir "Copiar imagen" y pegarla en la aplicación Vista previa.Pasos:
svg
archivo en su disco duro, por ejemplo,somefile.svg
tmp.html
que contenga esta línea:<img src="somefile.svg">
"File -> New from Clipboard"
File -> Save
el archivo y tú tienes elpng
archivo. (u otros tipos de archivos).Esto se prueba en el Chrome actual (versión 48.0) en Mac OS X El Capitan.
Actualización : no estoy seguro de si se debe a alguna restricción impuesta por Google Chrome. Acabo de probar un archivo SVG con Chrome 58.0, y obtengo una pequeña imagen del método anterior. Si ve este caso también, también puede usar
y tendrá una imagen en pantalla lo suficientemente buena como para que pueda hacer una captura de pantalla , por ejemplo, usando CmdShift4o CmdShift3en la Mac. Asegúrese de cambiar el tamaño de su ventana de Chrome al máximo permitido en la pantalla.
fuente
Si quieres hacer muchas a la vez, puedes:
mogrify -format png *.svg
También hay opciones para cambiar el tamaño, etc. sobre la marcha.
fuente
mogrify
también es parte de ImageMagick.Prueba Apache Batik .
También es compatible con la conversión por lotes y tiene muchas otras opciones útiles.
fuente
He hecho svgexport usando node / npm para esto, es multiplataforma y puede ser tan simple como:
fuente
También puede usar phantomjs para representar el svg. La ventaja es que lo representa como lo haría un navegador, ya que es básicamente un WebKit sin cabeza.
Una vez que lo descargue, necesitará phantomjs (binario) y el archivo rasterizer.js de la carpeta de ejemplos.
fuente
brew cask install phantomjs
. En mi instalación, la carpeta de ejemplos estaba ubicada en la ruta/usr/local/Caskroom/phantomjs/2.1.1/phantomjs-2.1.1-macosx/examples/
.Esto es lo que usé:
brew install imagemagick --with-librsvg
Luego ejecute los siguientes comandos:
find . -type f -name "*.svg" -exec bash -c 'convert $0 $0.png' {} \; rename 's/svg\.png/png/' *
Espero eso ayude.
fuente
Yo uso este comando en mi Linux. También debería funcionar para ti.
Aprendí que sin el argumento de "densidad", el mapa de bits estaría muy pixelado. Cambie el valor de densidad para que coincida con su necesidad.
fuente
El comando de conversión de ImageMagick, que usa algunos otros parámetros, es lo que me ayudó. ¡Aquí está mi solución de script Bash por lotes que divide la tarea en múltiples procesos para hacer uso de todos sus núcleos! Modifique según sea necesario.
batchConvertToSVG.sh (toma varios procesos como argumento):
convertToSvgHelper.sh:
fuente
Como se comentó anteriormente, ImageMagick hace el truco. Solo quería agregar un punto para GraphicsMagick , una antigua bifurcación de ImageMagick que tiene algunas mejoras (y mucha menos hinchazón de dependencia cuando se instala a través de Fink).
fuente
Puede realizar una conversión por lotes en una carpeta completa de archivos SVG a PNG. Utilicé la interfaz de línea de comandos de Inkscape para producir archivos png con un ancho de 80px.
png se guardará con el nombre original * .png
fuente
Otro método más sin instalar nada. Sin embargo, no está en la línea de comando.
<svg>
etiqueta, seleccione "Captura de pantalla de captura". (Tenga en cuenta que no debe hacer zoom en la imagen).PD Para ampliar la imagen .svg si es demasiado pequeña, intente abrir el archivo .svg en el editor de texto y anexar
0
a cada número excepto en el meta atributo. Esto se puede hacer mediante una sustitución global de expresiones regulares de(\d+)
a$10
, donde$1
es el marcador de posición para referencia, por ejemplo.fuente
wkhtmltoimage (del proyecto wkhtmltopdf) hizo esta conversión bien:
ImageMagick
muestra el carácter CJK en blanco en mi mac.fuente