PerfectVector
Di Irene Kim

Potrace da PNG a SVG: gestisci alfa e conserva i fori

Converti un PNG con Potrace dopo aver preparato il suo canale alfa. Segui un flusso di lavoro PGM testato, confronta le soglie e controlla lo sfondo e i fori interni dell'SVG.

9 min di lettura
In questa pagina

Per convertire un PNG in SVG con Potrace, prepara prima una bitmap in scala di grigi, quindi tracciala con potrace --svg. Per immagini scure su pixel trasparenti, componi l'immagine su un mascherino bianco prima di salvare la bitmap. Ispezionare le forme con soglia e le relative aperture interne prima di accettare l'SVG.

Lo standard Potrace 1.16 legge direttamente PBM, PGM, PPM e BMP anziché PNG. Il suo manuale ufficiale descrive un'operazione di ricalco monocromatico: le tonalità intermedie diventano nere o bianche. Il flusso di lavoro seguente crea una geometria solida con regioni vuote, anziché preservare i valori alfa continui del PNG.

Se preferisci un flusso di lavoro del browser per un'immagine che già possiedi, PerfectVector offre la conversione da immagine a percorso e un'anteprima gratuita. Inizia gratuitamente con la tua immagine, quindi confronta la silhouette, le piccole aperture e i colori con la fonte. Sblocca il risultato prima di modificarlo o esportarlo. La ricetta Potrace locale rimane utile quando si desidera una preelaborazione esplicita e impostazioni di comando ripetibili.

Provalo con la tua immagine
Apri lo strumento completo
Puoi provarlo gratis. Rilascia un’immagine e guarda l’anteprima del tuo vettoriale, senza registrarti.

Cosa ti serve prima del tracciamento

Utilizza un eseguibile Potrace installato, Python 3 con Pillow e il PNG originale. Questa ricetta è stata esercitata con Potrace 1.16 e Pillow 11.3.0. Conserva una copia dell'input e lavora in una cartella separata in modo che ogni variante di soglia abbia un nome file distinto.

Il caso di partenza è un logo, un'icona o un disegno scuro su uno sfondo chiaro o trasparente. Se il soggetto è chiaro su scuro, decidi come invertire o preparare in altro modo l'immagine prima di applicare questa ricetta. Per un flusso di lavoro dell'editor interattivo, consulta Inkscape Trace Bitmap.

Un matte è lo sfondo solido utilizzato per risolvere i pixel trasparenti prima del ricalco. Una soglia è il limite di luminosità che divide l'immagine preparata in primo piano e sfondo. Queste scelte avvengono prima che il contorno diventi geometria SVG.

1. Risolvi la trasparenza prima di salvare la bitmap

PNG memorizza colore e opacità separatamente. Il canale alfa descrive l'opacità di ciascun pixel. La specifica PNG spiega questa rappresentazione; un pixel completamente trasparente può ancora portare valori RGB. L'eliminazione del canale alfa non compone i pixel sullo sfondo bianco che potresti aver visto in un visualizzatore di immagini.

Per un segno scuro, posiziona deliberatamente l'immagine sul bianco. Questo frammento Python apre artwork.png, lo compone in un'immagine bianca di uguali dimensioni, converte il risultato in scala di grigi e salva artwork.pgm:

from PIL import Image
 
src = Image.open("artwork.png").convert("RGBA")
matte = Image.new("RGBA", src.size, "white")
gray = Image.alpha_composite(matte, src).convert("L")
gray.save("artwork.pgm")

La alpha_compositedocumentazione di Pillow definisce la seconda immagine come composta sulla prima. Entrambe le immagini qui hanno dimensioni e modalità RGBA corrispondenti.

Aprire il PGM preparato prima della tracciatura. Lo sfondo esterno dovrebbe essere bianco, il primo piano scuro e gli spazi vuoti visibili. Un rettangolo nero in questa fase è un problema di preelaborazione; la modifica successiva delle regole di riempimento SVG non può ripristinare un'apertura che non ha mai raggiunto il tracciante.

Illustrazione
Illustrazione di un anello nero su trasparenza PNG, composto su un mascherino bianco, quindi rappresentato come geometria SVG con un centro aperto
Risolvi i pixel trasparenti del raster rispetto a un mascherino intenzionale prima di scegliere la geometria in primo piano. L'ultima apertura lascia intravedere lo sfondo del display.

2. Tracciare il PGM preparato

Eseguilo nella cartella contenente artwork.pgm:

potrace artwork.pgm --svg --blacklevel 0.5 --turdsize 2 --output artwork.svg

--blacklevel 0.5 sceglie il limite della scala di grigi. --turdsize 2 mantiene esplicita la soppressione dei piccoli granelli predefinita di Potrace. Utilizza un nuovo nome di output quando modifichi un'impostazione, quindi confronta i file anziché sovrascrivere ripetutamente il tuo riferimento.

Cambia un controllo alla volta:

ControllareCosa recensire
--blacklevelSe i segni deboli diventano in primo piano e le aperture strette rimangono vuote
--turdsizeChe piccole forme isolate siano rumore o dettagli intenzionali
--alphamaxTrattamento degli angoli; nonostante il nome, questo non è un controllo dell'opacità

Una soglia del livello di nero più elevata può includere più pixel grigio chiaro in primo piano. Ciò può rafforzare una linea debole o chiudere un'apertura leggera. Giudica insieme la bitmap preparata e il contorno risultante. Lo smoothing non può ricostruire un contatore dopo che la soglia lo ha riempito.

Cosa mostravano le due immagini di prova originali

Abbiamo creato due PNG 256 × 256 controllati e abbiamo eseguito i comandi di preelaborazione e Potrace sopra. Uno era un anello nero con pixel trasparenti all'esterno e all'interno. L'altro era un marchio scuro opaco con uno stretto contatore grigio, l'apertura racchiusa all'interno del marchio. Abbiamo ispezionato gli SVG generati con un renderer e ne abbiamo controllato la trasparenza centrale e esterna.

Ingresso e preparazioneRisultato SVG osservato
Anello trasparente, alfa scartato prima della conversione in scala di grigiUna tela nera piena; l'esterno e l'apertura prevista divennero in primo piano
Stesso anello, composto su bianco prima della conversione in scala di grigiL'esterno e il centro erano vuoti; l'anello rimase pieno
Contatore grigio stretto, composito bianco, livello nero 0.5Il bancone è rimasto aperto
Stessa immagine del contatore preparata, livello nero 0.8Il contatore si riempì

I pixel invisibili del controllo ad anello portavano valori RGB neri. Ignorare l'alfa esponeva tali valori alla soglia. La versione composita bianca li ha risolti prima in bianco. Questo spiega la scatola nera di quel campione; non si afferma che ogni PNG fallirà allo stesso modo.

Il test del contatore ha mantenuto costanti l'input e le altre impostazioni. È cambiata solo la soglia. Il risultato mostra perché una traccia dall'aspetto più scuro non è automaticamente una traccia migliore. Ispeziona la caratteristica che ti serve invece di scegliere l'impostazione con la silhouette più pesante.

Si trattava di controlli digitali di due file di test originali, senza alcuna immagine raster incorporata nei relativi output SVG. Non abbiamo confrontato la qualità di Potrace's con PerfectVector, importato i file in un cutter o testato un risultato fisico.

3. Controlla i fori e lo sfondo nell'SVG salvato

Posiziona l'SVG su uno sfondo contrastante. Lo sfondo dovrebbe essere visibile sia attraverso l'area esterna che attraverso ogni apertura prevista. La vernice bianca può assomigliare a un buco su una pagina bianca, quindi una miniatura da sola non è sufficiente.

Un percorso composto SVG può descrivere un contorno esterno e un'apertura interna all'interno di un oggetto. Se l'apertura è già assente dalla geometria tracciata, ritornare al PGM e alla soglia. Se esiste in un renderer ma viene compilato dopo l'importazione, esamina invece l'interpretazione del percorso dell'app ricevente. La guida alla risoluzione dei problemi dei fori SVG separa questi casi.

Controlla il file salvato per:

  • la silhouette prevista e i piccoli spazi vuoti;
  • vero e proprio spazio vuoto fuori dal marchio e dentro i suoi contatori;
  • macchioline vaganti che non dovrebbero diventare oggetti;
  • una dimensione del documento adeguata nel flusso di lavoro di destinazione;
  • percorsi anziché una copia incorporata del PNG.

Se solo lo sfondo sembra sbagliato, usa la diagnosi dello sfondo SVG trasparente prima di eliminare ogni oggetto bianco. Se una piccola caratteristica è veramente assente dalla fonte, utilizza un originale più grande o ridisegna quel dettaglio. La guida alla qualità della fonte spiega questo confine.

Quando questo flusso di lavoro monocromatico si adatta

Potrace si adatta a un segno che può essere espresso come una silhouette piena e aperture intenzionali. Conserva il raster quando l'ombreggiatura morbida o l'opacità parziale fanno parte del disegno che devi preservare. Per diversi colori significativi, utilizzare un flusso di lavoro di vettorizzazione in grado di supportare i colori o preparare passaggi separati deliberatamente; questo singolo comando monocromatico non crea una tavolozza di colori.

Puoi anche utilizzare un editor vettoriale per ridisegnare un contorno critico. Il tracciamento automatico fornisce una forma candidata e l'uso previsto determina se mantenerla o modificarla.

Domande frequenti

Potrace può aprire direttamente un PNG? Potrace standard 1.16 accetta input PBM, PGM, PPM e BMP. Decodifica prima il PNG con un altro strumento immagine, rendi esplicito il trattamento della trasparenza e salva una bitmap supportata prima del ricalco.

Potrace preserva la trasparenza PNG? Il flusso di lavoro monocromatico crea geometrie piene e regioni vuote. Non preserva i valori alfa continui del PNG. Composi i pixel trasparenti su un mascherino intenzionale prima della soglia, quindi verifica le regioni vuote dell'SVG su uno sfondo contrastante.

alphamax è l'impostazione alfa PNG? No. alphamax di Potrace controlla il trattamento degli angoli nelle curve tracciate. Non determina il modo in cui viene composto il canale di opacità di un PNG prima del tracciamento.

Perché è scomparso un buco? Controlla se l'apertura è ancora visibile nella bitmap preparata e nella soglia selezionata. Se la soglia l'ha riempita, modificare la preparazione o il taglio e ripercorrere. Se l'SVG contiene l'apertura ma solo un'app ricevente la riempie, controlla lì la gestione del percorso composto e delle regole di riempimento.

Fonti

  1. Potrace — Manuale — Formati di input supportati, soglia monocromatica, output SVG e opzioni di comando con nome.
  2. Pillow: modulo immagine: composizione delle immagini RGBA e ordine utilizzato nello snippet di preparazione.
  3. W3C — Specifica PNG — Campioni di colore e rappresentazione alfa nelle immagini PNG.
  4. W3C — Percorsi SVG — Percorsi composti e contorni interni che possono descrivere aperture.

Inizia gratuitamente con la tua immagine in PerfectVector, quindi controlla la sua silhouette e le aperture interne rispetto alla fonte prima di scegliere il passaggio di modifica successivo.

Altro dal blog

PerfectVector

Trasforma l’immagine in
tracciati vettoriali puliti e modificabili

Vettorializza e controlla l’anteprima gratis, senza limiti giornalieri.