¿Cómo convertir una imagen PNG a un SVG?
¿Cómo convertir una imagen PNG a un SVG?
Respuestas:
Hay un sitio web donde puede cargar su imagen y ver el resultado.
Pero si desea descargar su imagen svg, debe registrarse. (Si te registras, obtienes 2 imágenes gratis)
potrace
no es compatible con PNG como archivo de entrada, pero PNM .
Por lo tanto, primero convert
de PNG a PNM:
convert file.png file.pnm # PNG to PNM
potrace file.pnm -s -o file.svg # PNM to SVG
potrace -s
=> El archivo de salida es S VGpotrace -o file.svg
=> Escribir salida en file.svg
convert 2017.png 2017.pnm
Archivo temporal = 2017.pnm
potrace 2017.pnm -s -o 2017.svg
ykarikos propone un script png2svg.sh que he mejorado:
#!/bin/bash
File_png="${1?:Usage: $0 file.png}"
if [[ ! -s "$File_png" ]]; then
echo >&2 "The first argument ($File_png)"
echo >&2 "must be a file having a size greater than zero"
( set -x ; ls -s "$File_png" )
exit 1
fi
File="${File_png%.*}"
convert "$File_png" "$File.pnm" # PNG to PNM
potrace "$File.pnm" -s -o "$File.svg" # PNM to SVG
rm "$File.pnm" # Remove PNM
Si desea convertir muchos archivos, también puede usar el siguiente comando de una línea:
( set -x ; for f_png in *.png ; do f="${f_png%.png}" ; convert "$f_png" "$f.pnm" && potrace "$f.pnm" -s -o "$f.svg" ; done )
Vea también esta buena comparación de convertidores de trama a vector en Wikipedia.
potrace
para iconos en blanco y negro. Gracias por sus comentarios. Pero lo siento, no tengo idea de cómo preservar los colores ... ¡Ho! Tengo una idea: si su imagen original tiene pocos colores (digamos tres colores únicos), puede crear tres imágenes iniciales (una para cada color). Luego convierta a SVG. Y finalmente, combine los tres contenidos SVG en un archivo (SVG está basado en XML). Espero que esto pueda ayudar ... Saludos ;-)
convert
y potrace
están disponibles en muchas plataformas. Estoy usando computadoras basadas en Linux. Acabo de usar estos comandos ayer para producir un SVG a partir de un papel escaneado. Puede ver el resultado: cpp-frug.github.io/images/Cpp-President-2017.svg Por favor, explique más sobre su objetivo. ¿Qué quieres / maravilla? ¿Cuál es tu necesidad / deseo? Saludos ;-)
Un png es un estilo de imagen de mapa de bits y un SVG es un diseño gráfico basado en vectores que admite mapas de bits, por lo que no es como si convirtiera la imagen en vectores, solo una imagen incrustada en un formato basado en vectores. Puede hacerlo utilizando http://www.inkscape.org/, que es gratuito. Lo incrustaría, sin embargo, también tiene un motor similar a Live Trace que intentará convertirlo en rutas si lo desea (usando potrace). Ver seguimiento en vivo en adobe illustrator (comercial) es un ejemplo:
http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm
Es posible que desee mirar potrace .
Fácil
Como verá, si desea hacer muchas otras cosas inteligentes .svg, también puede hacerlo usando Inkscape.
Una observación no técnica: personalmente prefiero este método sobre las ofertas de sitios web "gratis" porque, aparte de requerir a menudo el registro, al cargar la imagen, en todos los términos prácticos, uno está dando la imagen al propietario del sitio web.
con Adobe Illustrator:
Abra Adobe Illustrator. Haga clic en "Archivo" y seleccione "Abrir" para cargar el archivo .PNG en el programa. Edite la imagen según sea necesario antes de guardarla como un archivo .SVG. Haga clic en "Archivo" y seleccione "Guardar como". Cree un nuevo nombre de archivo o use el nombre existente. Asegúrese de que el tipo de archivo seleccionado sea SVG. Elija un directorio y haga clic en "Guardar" para guardar el archivo.
o
convertidor en línea http://image.online-convert.com/convert-to-svg
prefiero AI porque puedes hacer los cambios necesarios
buena suerte
Para mi sorpresa, potrace que el solo puede procesar en blanco y negro. Eso puede estar bien para su caso de uso, pero algunos pueden considerar que la falta de trazado de color es problemática.
Personalmente, he tenido resultados satisfactorios con Vector Magic
Aún así no es perfecto.
Una nota para aquellos que usan potrace e imagemagick , convertir imágenes PNG con transparencia a PPM no parece funcionar muy bien. Aquí hay un ejemplo que usa la -flatten
bandera convert
para manejar esto:
sudo apt-get install potrace imagemagick
convert -flatten input.png output.ppm
potrace -s output.ppm -o output.svg
rm output.ppm
Otro fenómeno interesante es que puede usar PPM (256 * 3 colores, es decir, RGB), PGM (256 colores, es decir, escala de grises) o PBM (2 colores, es decir, blanco o negro solamente) como formato de entrada. Según mis limitadas observaciones, parecería que en las imágenes con suavizado, PPM y PGM (que producen SVG idénticos hasta donde puedo ver) reducen el área coloreada y PBM expande el área coloreada (aunque solo un poco). Presumiblemente esta es la diferencia entre una pixel > (256 / 2)
prueba y una pixel > 0
prueba. Puede cambiar entre los tres cambiando la extensión del archivo, es decir. los siguientes usan PBM :
sudo apt-get install potrace imagemagick
convert -flatten input.png output.pbm
potrace -s output.pbm -o output.svg
rm output.pbm
También puedes probar http://image.online-convert.com/convert-to-svg
Siempre lo uso para mis necesidades.
¡Acabo de encontrar esta pregunta y respuestas ya que estoy tratando de hacer lo mismo! No quería usar algunas de las otras herramientas mencionadas. (No quiero regalar mi correo electrónico y no quiero pagar). Descubrí que Inkscape (v0.91) puede hacer un trabajo bastante bueno. Este tutorial es rápido y fácil de entender.
Es tan simple como seleccionar su mapa de bits en Inkskape y Shift + Alt + B.
Dependiendo de por qué desea convertir de .png a .svg, es posible que no tenga que pasar por el problema. La conversión de .png (ráster) a .svg (vector) puede ser una molestia si no está muy familiarizado con las herramientas disponibles, o si no es un diseñador gráfico de oficio.
Si alguien le envía un archivo grande de alta resolución (por ejemplo, 1024x1024), puede cambiar el tamaño a casi cualquier tamaño que desee en GIMP. A menudo, tendrá problemas para cambiar el tamaño de una imagen si la resolución (número de píxeles por pulgada) es demasiado baja. Para rectificar esto en GIMP, puede:
File -> Open
: su archivo .pngImage -> Image Properties
: verifique la Resolución y el espacio de color. Desea una resolución de alrededor de 300 ppp. En la mayoría de los casos, desea que el espacio de color sea RGB.Image -> Mode
: establecer en RGBImage -> Scale Image
: deje el tamaño solo, establezca y la resolución Y a 300 o más. Hit Scale.Image -> Scale Image
: la resolución ahora debería ser 300 y ahora puede cambiar el tamaño de la imagen a casi cualquier tamaño que desee.No es tan fácil como cambiar el tamaño de un archivo .svg, pero definitivamente más fácil y rápido que tratar de convertir un .png a .svg, si ya tiene una imagen grande de alta resolución.
Supongo que desea escribir software para hacer esto. Para hacerlo ingenuamente, solo buscaría líneas y establecería los vectores. Para hacerlo de forma inteligente, intenta ajustar formas en el dibujo (ajuste del modelo). Además, debe intentar determinar las regiones de mapa de bits (regiones que no puede modelar a través de vergüenzas o aplicar texturas. No recomendaría seguir esta ruta, ya que tomará bastante tiempo y requerirá un poco de gráficos y conocimiento de visión por computadora. Sin embargo, la salida será mucho y escalará mucho mejor que su salida original.
http://online-converting.com/image/convert-to-svg/ funcionó bien para convertir a svg
potrace
la línea de comando - me hace preguntarme qué usa internamente el sitio web ...
Esta herramienta está funcionando muy bien en este momento.
Si estás en algún sistema Linux, imagemagick es perfecto. Es decir
convert somefile.png somefile.svg
Esto funciona con montones de diferentes formatos.
Sin embargo, para otros medios, como videos y uso de audio (ffmpeg) , sé que has indicado claramente png a svg; Todavía está relacionado con los medios.
ffmpeg -i somefile.mp3 somefile.ogg
Solo un consejo para si desea revisar muchos archivos; un bucle con trucos básicos de shell.
for f in *.jpg; do convert $f ${f%jpg}png; done
Eso elimina el jpg y agrega png, que le dice a convertir lo que desea.