¿Cómo convierto un PNG a SVG, usando el software?

29

Me gustaría poder recortar estructuras químicas SVG , completamente (vea esta pregunta ), que fueron creadas usando MarvinSketch y creo que podría haber pensado en una solución; Utilizo MarvinSketch para crear un archivo PNG grande, luego lo recorto con GIMP y luego convierto el PNG a SVG . Por lo tanto, me gustaría saber si alguien conoce un software gratuito que pueda instalar (no me gusta usar convertidores en línea, ya que siempre sospecho de malware) en Ubuntu para una conversión PNG-> SVG de alta calidad.

BH2017
fuente
1
OK, ¿cómo sería un código para eso? Intenté revertir el código como dijiste, por lo que sé (soy un novato del código). Este es el código que se utiliza`#{INKSCAPE_PATH} -z -f #{Guanidine.png} -w #{width} -j -e #{Guanidine.svg}
BH2017
1
Después de hacer cd ~/Documents/Chem Structures/cuál es el directorio en el que se encuentran los archivos.
BH2017
1
sudo apt-get install imagemagick luego guarde este script #! / bin / bash while [$ # -gt 0]; do picture = $ 1 png_file = echo "$picture" | sed 's/\.\w*$/.png/' / usr / bin / convert "$ picture" png: cambio de "$ png_file" hecho en ~ / .local / share / nautilus / scripts y recuerde hacer que sea ejecutable, luego haga clic derecho y luego scrips y luego lo que sea guarda este script en
zeitue
1
Bien, como dije, soy un novato, así que tendrás que explicar eso mejor, ya que todo lo que entendí fuesudo apt-get install imagemagick
BH2017
2
Sin embargo, debe tener en cuenta que existe una diferencia fundamental entre los gráficos vectoriales como SVG y los gráficos de píxeles como PNG. Una vez que pierde la información del vector, no hay forma (sin pérdida) de restaurarla. Entonces, incluso si "convierte" de PNG a SVG, básicamente no hace nada más como incrustar los gráficos de píxeles (codificados en base64) dentro de un archivo de gráficos vectoriales SVG. El convertcomando es aún peor: coloca un círculo para cada píxel de los gráficos de píxeles, lo que conduce a tamaños de archivo muy grandes. Por lo tanto, trataría de cortar directamente el archivo SVG.
soulsource

Respuestas:

24

Por lo tanto, está buscando un convertidor / trazador de gráficos de trama a vector . y ambos están en el repositorio de Ubuntu. Yo mismo lo intenté antes, lo que dio buenos resultados con las opciones predeterminadas. Como recuerdo, ambas herramientas no admiten formatos comprimidos como entrada, solo imágenes de mapa de bits .potraceautotracepotrace

Ver ejemplos de Potrace

Potrace : utilidad para transformar mapas de bits en gráficos vectoriales

potrace es una utilidad para rastrear un mapa de bits, lo que significa transformar un mapa de bits en una imagen suave y escalable. La entrada es un mapa de bits (formato PBM, PGM, PPM o BMP), y la salida predeterminada es un archivo PostScript encapsulado (EPS). Un uso típico es crear archivos EPS a partir de datos escaneados, como logotipos de empresas o universidades, notas escritas a mano, etc. La imagen resultante no es "irregular" como un mapa de bits, sino uniforme. Luego se puede representar en cualquier resolución.

Mando:

potrace -s inputfile

AutoTrace : convertidor de mapa de bits a gráficos vectoriales

AutoTrace es un programa para convertir mapas de bits en gráficos vectoriales. El objetivo del proyecto AutoTrace es el desarrollo de una aplicación gratuita disponible similar a CorelTrace o Adobe Streamline. En algunos aspectos ya es mejor. Originalmente creado como un complemento para el GIMP, AutoTrace ahora es un programa independiente.

Mando:

autotrace -output-format svg inputfile

Referencias

  • man potrace
  • man autotrace

Actualizar

user.dz
fuente
1
Ejecuté autotrace -vector svg inputfile(después de cambiar inputfile a fenfluramine.png) y no funcionó, también cambié el formato de salida a svg no funcionó. Lo he instalado
BH2017
1
Corrí potrace -s inputfile(con el archivo de entrada siendo fenfluramine.png nuevamente) y me dio este error:potrace: /home/fusion809/Documents/Chem Structures/Fenfluramine.png: file format not recognized Possible input file formats are: pnm (pbm, pgm, ppm), bmp.
BH2017
1
@BrentonHorne, debe crear una imagen PNM o BMP en lugar de PNG. ambas herramientas no admiten formatos comprimidos como entrada (PNG, JPEG ...), solo imágenes de mapa de bits (PNM, BMP, ...). Si no puede exportar otro que no sea PNG, intente convertirlos primero a BMP.
user.dz
1
Bueno, entonces no respondiste mi pregunta. MarvinSketch puede exportar a BMP pero su fondo no es transparente, por eso sugerí el formato PNG en primer lugar. No puede hacer PNM.
BH2017
2
Ajá, funcionó. Gracias. Pensé que como el BMP no era transparente, ningún resultado sería demasiado.
BH2017
19

Inkscape tiene una increíble herramienta de rastreo automático.

  1. Instale Inkscape usando sudo apt-get install inkscape
  2. Importa tu imagen
  3. Selecciona tu imagen
  4. Desde la barra de menú, seleccione Path -> Trace Bitmap Item
  5. Ajuste los parámetros de rastreo según sea necesario

Consulte su tutorial de rastreo para obtener más información.

Una vez que se sienta cómodo con las opciones de rastreo. Puede automatizarlo usando CLI de Inkscape .

Hussein El Motayam
fuente
55
+1, gracias. Me alegra saber que Inkscape tiene una potracefuncionalidad integrada en la GUI como se indica en la referencia que menciona.
user.dz
55
Esta es la respuesta correcta, ya que potrace no admite la importación .png, y es fácil tener dificultades con la transparencia, etc. con las conversiones.
brianlmerritt
1
Además, Gimp es capaz de rastrear imágenes en color, lo que parece faltar en la carrera.
sonríe el
8

Usa el convertcomando en la terminal:

Por ejemplo : convert EXAMPLE.png EXAMPLE.svg

Aquí hay información de la página de manual:

convert(1) - Linux man page

Name

convert - convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.

Synopsis

convert [input-options] input-file [output-options] output-file

CPH
fuente
3
Esto incrusta una imagen ráster en el SVG en lugar de convertirla en una imagen vectorial.
bk138
1
Muchas gracias ... esto es justo lo que estaba buscando ...
Dan Ortega
2

Acabo de usar gimp ahora con resultados sorprendentes. La primera vez que utilicé potrace, pero todo lo que obtuve fue una imagen en negro con mucha distorsión. Tal vez no lo usé correctamente, pero cuando probé con gimp simplemente exportando como "eps" (file_name.eps), todo estaba hecho. Todo lo que tengo que hacer es revisarlo configurando la resolución con un valor de 300. Eso es todo.

Ivan Cervantes
fuente