Come convertire in batch bitmap in SVG?


13

Ho molte bitmap in scala di grigi che devo convertire in un formato vettoriale, come SVG. Ho usato Inkscape, il che dà buoni risultati, ma per aprire, convertire e salvare un file sono necessari circa 10-15 minuti. Esiste uno strumento batch o da riga di comando in grado di convertirli?


ti consigliamo di dare un'occhiata potraceanche a.
Stéphane Chazelas,

è anche possibile utilizzare inkscape come collegamento

Risposte:


19

Potrace

Ho trovato questo esempio su SO in una domanda e risposta intitolata: Come convertire un'immagine JPEG in formato SVG usando ImageMagick? . Una delle risposte suggerite potrace.

$ convert input.jpg output.ppm
$ potrace -s output.ppm -o svgout.svg

risultati

           SS # 1             ss # 2

Guardando il potracesito web apparentemente puoi passare direttamente da BMP a SVG.

$ potrace -s input.bmp -o output.svg

AutoTrace

Un'altra opzione potraceè autotrace.

$ autotrace -output-file ouput.svg -output-format svg --color-count 4 input.bmp

Probabilmente dovrai giocare con il --color-countper ottenere un'immagine adatta alle tue esigenze.

risultati

                                                 ss # 3

Quale usare?

Di questi 2 dipende davvero dal materiale di partenza. Se stai convertendo le immagini, potraceprobabilmente è l'opzione migliore. Per materiale non fotografico come font e oggetti inanimati come scenari che includono cose come strade, quindi autotracecon il suo --centerlineinterruttore.

Sebbene non sia ottimale per le foto, fa un buon lavoro on line art e immagini simili a poster. Non va troppo bene con il colore. Autotrace ha alcune funzionalità non disponibili nella finestra di dialogo Potrace incorporata in Inkscape. Ad esempio, c'è un interruttore della linea centrale che è particolarmente utile per tracciare strade (nelle mappe) o caratteri dei caratteri.

Conversioni batch

Puoi avvolgere uno di questi comandi in un ciclo for in Bash, il che semplifica il lavoro di conversione di massa.

$ for i in *.bmp; do <CONVERSION TOOL> ... "$i"; done

Riferimenti


non è necessario archiviare un file intermedio dal JPEG. come one-liner ho usato:convert -channel RGB -compress None input.jpg bmp:- | potrace -s - -o output.svg
Louis Maddox

9

Autotrace

Potresti provare con l' autotrace .

Utilizzando il seguente comando si ottengono i seguenti risultati:

autotrace --output-format svg --output-file output.svg --color-count 4 imgsrc.jpg

Ho dovuto fare uno screencapture dello svg risultante e salvare come png per mostrare l'output.

Ecco un'immagine jpg di origine:

fonte del cranio

Ecco l'immagine risultante:

convertire il cranio


7

Normalmente, faccio tutte le mie attività di manipolazione delle immagini con convertda ImageMagic ma non riesco a farlo funzionare bene con i file svg. Tuttavia, puoi usarlo inkscapedalla riga di comando:

for i in *bmp; do inkscape -f "$i" -l "$i.svg"; done

Ciò creerà i file chiamati foo.bmp.svg. Per ottenere i nomi giusti, prova questo:

for i in *bmp; do inkscape -f "$i" -l "${i%.bmp}.svg"; done

Il problema con questo approccio è che, almeno sul mio sistema, si apre un fastidioso dialogo grafico che mi chiede se voglio collegare o incorporare l'immagine:

                                 inserisci qui la descrizione dell'immagine

Quindi, devi ancora fare clic su OK manualmente, ma è ancora molto più veloce di farlo file per file.

Le immagini in uscita sono identiche per quanto posso dire:

   inserisci qui la descrizione dell'immagine


Teoricamente, entrambi converte rsvg-convertdovremmo essere in grado di farlo, ma non sono riuscito a farlo funzionare bene sulle mie immagini nei pochi minuti che ho passato a provare. Vale comunque la pena esaminare entrambi.


Non sono positivo, ma sul sito Web di Inkscape dice che ora è potraceincorporato, quindi mi chiedo se sta comunque usando questo strumento? quote: "Potrace è ora incorporato in Inkscape. Non è necessario eseguirlo separatamente". - wiki.inkscape.org/wiki/index.php/Tools
slm

5
Sospetto che Inkscape incorporerà semplicemente l'immagine bitmap all'interno di SVG, da cui il loro aspetto identico.
user2428118

@ user2428118 Sospetto che tu abbia ragione. Questo potrebbe essere o meno un problema a seconda di cosa esattamente vuoi fare con queste immagini.
terdon

1

potraceè lo strumento per quello. Puoi elaborarli in blocco, ma prima devi convertire le immagini in bianco e nero:

ls ./*.jpg | xargs -L1 -I {}  convert -monochrome {} {}.ppm
ls -1 ./*.ppm | xargs -L1 -I {} potrace {} -r 300 -b svg -o {}.svg

Installa su Ubuntu:

sudo apt install potrace

Se vuoi convertire immagini che non sono monocromatiche, Inkscapeha una base di strumento tracciante su potrace che supporta più colori, converte prima l'immagine in livelli di colore, quindi traccia quelli e combina il risultato.

Per utilizzare il tracciante, caricare o importare un'immagine, selezionarla e selezionare l' elemento Percorso > Traccia bitmap o Shift+ Alt+B.

Vedere

Tutorial qui!

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.