image - studio - Convierte archivos SVG a múltiples archivos PNG de diferentes tamaños
svg online (5)
Aquí se explica cómo hacerlo mucho más rápido (3 veces para mí solo para 5 exportaciones en un disco SSD) al iniciar Inkscape solo una vez y cómo exportar las imágenes a diferentes directorios (como usa Android):
#!/bin/sh
# Converts the Inkscape icon file ic_launcher_web.svg to the launcher web & app png files.
PROJECT="My Project Name"
INPUT="source-assets/ic_launcher_web.svg"
MAIN="${PROJECT}/src/main/"
RES="${MAIN}res/"
DRAWABLE="${RES}/drawable"
inkscape --shell <<COMMANDS
--export-png "${MAIN}ic_launcher-web.png" -w 512 "${INPUT}"
--export-png "${DRAWABLE}-mdpi/ic_launcher.png" -w 48 "${INPUT}"
--export-png "${DRAWABLE}-hdpi/ic_launcher.png" -w 72 "${INPUT}"
--export-png "${DRAWABLE}-xhdpi/ic_launcher.png" -w 96 "${INPUT}"
--export-png "${DRAWABLE}-xxhdpi/ic_launcher.png" -w 144 "${INPUT}"
quit
COMMANDS
Este es un script de shell bash. En Windows, puede ejecutarlo en MINGW32 (por ejemplo, GitHub''s Git Shell) o convertirlo a un script de Windows DOS shell. (Para una secuencia de comandos DOS, deberá cambiar los COMANDOS "here document" en algo que DOS pueda manejar. Consulte heredoc para Windows batch ?, para técnicas como repetir varias líneas de texto en un archivo temporal).
Tengo una imagen de logotipo en formato SVG y me pregunto si hay una forma de generar múltiples archivos png de diferentes tamaños.
Por ejemplo, configuré 20 diferentes ancho y alto y genera 20 archivos PNG. Está bien si tengo que hacerlo 5 imágenes a la vez.
Tengo Illustrator instalado y no puedo entender cómo hacerlo.
¡Gracias por toda tu ayuda!
Eche un vistazo a inkmake . De hecho, hice esa herramienta solo para exportar por lotes archivos SVG a PNG, etc. en diferentes tamaños. Fue diseño porque quería guardar en Inkscape y luego ejecutar inkmake
en un terminal y exportará todos los archivos PNG que dependen de él.
La respuesta aceptada está bien. Hay una ayuda oficial sobre las opciones disponibles. También los comandos básicos de Shell funcionarán bien aquí:
for x in 10 100 200 ; do inkscape --export-png logo${x}.png -w ${x} logo.svg ; done
En la línea de comando en Windows usa esta línea de @avalancha en los comentarios
for %x in (100 200 300) ; do inkscape --export-png logo%x.png -w %x logo.svg ; done
No sé sobre Illustrator, pero esto debería ser fácil usando las opciones de línea de comando de Inkscape . Por ejemplo, usando Ruby:
$ ruby -e ''[10,100,200].each { |x| `inkscape --export-png logo#{x}.png -w #{x} logo.svg` }''
Si aún no lo has hecho, instala imagemagick
. En OSX, eso requiere soporte de rsvg
específicamente:
brew install imagemagick --with-librsvg
También necesita Inkscape, de lo contrario, es posible que las imágenes salgan totalmente negras (excepto en las áreas transparentes).
brew install homebrew/gui/inkscape
Entonces, debería poder convertir de la siguiente manera:
convert -density 1536 -background none -resize 100x100 input.svg output-100.png
El 1536
es una solución para algo a lo que no puedo encontrar buenas respuestas. En mis experimentos, omitir el argumento -density
crea imágenes que son terriblemente pequeñas. Convirtiendo una imagen a -size 100x100
en -density 1024
me da una imagen de salida de 96x96
, así que lo que hago en su lugar es rebasar la densidad y redimensionarla al tamaño objetivo.
TL; DR usa una densidad que es 1500 veces mayor que su tamaño objetivo, y vaya desde allí.
Hay muchas formas de ejecutar ese comando a granel. Aquí hay uno en el caparazón:
for s in 10 100 200 ; do convert -density 1536 -background none -resize ${s}x${s} input.svg output-${s}.png ; done