Come posso convertire un PNG in SVG, usando il software?


29

Mi piacerebbe riuscire a ritagliare completamente le strutture chimiche SVG (vedi questa domanda ), che sono state create usando MarvinSketch e penso che avrei potuto pensare a una soluzione; Uso MarvinSketch per creare un file PNG di grandi dimensioni, quindi ritaglialo utilizzando GIMP e quindi converto il PNG in SVG . Quindi vorrei sapere se qualcuno conosce un software gratuito che posso installare (non mi piace usare i convertitori online perché sono sempre sospettoso del malware) su Ubuntu per la conversione PNG-> SVG di alta qualità.


1
OK, come sarebbe un codice per quello? Ho provato a invertire il codice come hai detto, per quanto ne so (sono un noob di codice). Questo è il codice che ho usato`#{INKSCAPE_PATH} -z -f #{Guanidine.png} -w #{width} -j -e #{Guanidine.svg}
BH2017

1
Dopo aver fatto cd ~/Documents/Chem Structures/qual è la directory in cui si trovano i file.
BH2017,

1
sudo apt-get install imagemagick quindi salva questo script #! / bin / bash mentre [$ # -gt 0]; do picture = $ 1 png_file = echo "$picture" | sed 's/\.\w*$/.png/' / usr / bin / convert "$ picture" png: spostamento di "$ png_file" fatto in ~ / .local / share / nautilus / script e ricordati di renderlo eseguibile, quindi fai clic con il tasto destro del mouse, quindi esegui lo script e poi salvate questo script in
zeitue

1
OK, come ho detto, sono un noob, quindi dovrai spiegarlo meglio come ho capitosudo apt-get install imagemagick
BH2017,

2
Dovresti comunque essere consapevole che esiste una differenza fondamentale tra la grafica vettoriale come SVG e la grafica pixel come PNG. Una volta perse le informazioni vettoriali, non c'è modo (privo di perdite) per ripristinarle. Quindi, anche se "converti" da PNG a SVG, fondamentalmente non fai nient'altro come incorporare la grafica pixel (codificata Base64) in un file di grafica vettoriale SVG. Il convertcomando è ancora peggio: posiziona un cerchio per ogni pixel della grafica pixel, il che porta a file di dimensioni molto grandi. Proverei quindi a tagliare direttamente il file SVG.
Fonte d'anima

Risposte:


24

Quindi stai cercando un convertitore / tracciante da grafica raster a vettoriale . ed entrambi sono nel repository Ubuntu. Io stesso ho provato prima che ha dato buoni risultati con le opzioni predefinite. Come ricordo, entrambi gli strumenti non supportano i formati compressi come input, ma solo immagini bitmap .potraceautotracepotrace

Vedi esempi di Potrace

Potrace : utility per trasformare bitmap in grafica vettoriale

potrace è un'utilità per tracciare una bitmap, il che significa trasformare una bitmap in un'immagine liscia e scalabile. L'input è una bitmap (formato PBM, PGM, PPM o BMP) e l'output predefinito è un file PostScript incapsulato (EPS). Un uso tipico è quello di creare file EPS da dati scansionati, come loghi aziendali o universitari, note scritte a mano, ecc. L'immagine risultante non è "irregolare" come una bitmap, ma liscia. Può quindi essere reso a qualsiasi risoluzione.

Comando:

potrace -s inputfile

AutoTrace : convertitore da bitmap a grafica vettoriale

AutoTrace è un programma per convertire bitmap in grafica vettoriale. L'obiettivo del progetto AutoTrace è lo sviluppo di un'applicazione liberamente disponibile simile a CorelTrace o Adobe Streamline. In alcuni aspetti è già meglio. Originariamente creato come plug-in per GIMP, AutoTrace è ora un programma autonomo.

Comando:

autotrace -output-format svg inputfile

Riferimenti:

  • man potrace
  • man autotrace

Aggiornare


1
Ho eseguito autotrace -vector svg inputfile(dopo aver modificato il file di input in fenfluramine.png) e non ha funzionato, ho anche cambiato il formato di output in svg non ha funzionato. L'ho installato.
BH2017,

1
Ho corso potrace -s inputfile(con il file di input che è fenfluramine.png di nuovo) e mi ha dato questo errore: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, dovresti creare un'immagine PNM o BMP invece di PNG. entrambi gli strumenti non supportano formati compressi come input (PNG, JPEG ...), solo immagini Bitmap (PNM, BMP, ...). Se non puoi esportare altro, allora PNG prova a convertirli 1 ° in BMP.
user.dz,

1
Bene, allora non hai risposto alla mia domanda. MarvinSketch può esportare in BMP ma il suo sfondo non è trasparente, motivo per cui ho suggerito il formato PNG in primo luogo. Non può fare PNM.
BH2017,

2
Ah, ha funzionato. Grazie. Pensavo che il BMP non fosse trasparente e che nessun risultato lo sarebbe stato.
BH2017,

19

Inkscape ha un fantastico strumento di auto-tracciamento.

  1. Installa Inkscape usando sudo apt-get install inkscape
  2. Importa la tua immagine
  3. Seleziona la tua immagine
  4. Dalla barra dei menu, selezionare Path -> Trace Bitmap Item
  5. Regola i parametri di traccia come necessario

Controlla il loro tutorial di traccia per ulteriori informazioni.

Una volta che hai dimestichezza con le opzioni di tracciamento. Puoi automatizzarlo usando l' interfaccia della riga di comando di Inkscape .


5
+1, grazie. Felice di sapere che Inkscape ha potracefunzionalità integrate nella GUI come indicato nel riferimento che menzioni.
user.dz,

5
Questa è la risposta corretta poiché potrace non supporta l'importazione .png ed è facile trovarsi in difficoltà con la trasparenza ecc. Con le conversioni.
brianlmerritt,

1
Inoltre Gimp è in grado di tracciare immagini a colori, ciò che sembra sfuggire alla potrace.
sorridi l'

8

Utilizzare il convertcomando nel terminale:

Per esempio : convert EXAMPLE.png EXAMPLE.svg

Ecco alcune informazioni dalla manpage:

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


3
Ciò incorpora un'immagine raster in SVG invece di convertirla in un'immagine vettoriale.
bk138

1
Grazie mille ... questo è proprio quello che stavo cercando ...
Dan Ortega,

2

Ho appena usato gimp in questo momento con risultati sorprendenti. Ho usato per la prima volta il potrace ma tutto quello che ho ottenuto è stata un'immagine tutta in nero con molta distorsione. Forse non l'ho usato correttamente ma quando ho provato con gimp solo esportando come "eps" (nome_file.eps), è stato tutto fatto. Tutto quello che devo fare è rivederlo impostando la risoluzione con un valore di 300. Ecco fatto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.