Posterizzare e ricalcare: perché il convertitore ti ha dato un SVG brutto

La maggior parte degli strumenti da immagine a SVG posterizza e ricalca. Cosa fa questo a sfumature, bordi e numero di nodi, e cosa fa invece una ricostruzione.

Apri un qualsiasi strumento «PNG in SVG», carica un logo con una sfumatura morbida e ottieni delle fasce. Carica un'icona pulita e ottieni più nodi di una mappa della metropolitana. Gli strumenti cambiano nell'interfaccia, ma quasi tutti sotto eseguono la stessa ricetta: posterizzare, poi ricalcare.

La ricetta

  • Ridurre l'immagine a N colori, di solito raggruppando i pixel.
  • Per ogni colore, trovare le macchie di pixel connessi.
  • Contornare ogni macchia con un poligono, poi lisciare il poligono in curve.
  • Impilare i risultati e scriverli nel file.

È veloce, facile da implementare ed esattamente ciò che facevano i ricalchi classici degli anni 2000. I suoi difetti sono nel metodo, nessuna regolazione li elimina.

Difetto 1: le sfumature diventano strisce

Una sfumatura è fatta di migliaia di colori leggermente diversi. Raggrupparli in N secchi produce N fasce piatte con bordi netti tra loro. Aumentare N dà fasce più sottili e più tracciati; non dà mai una sfumatura.

Difetto 2: due colori, due bordi

Ogni colore viene ricalcato da solo, quindi il confine tra rosso e blu viene tracciato due volte: una dal lato rosso, una dal lato blu. I due contorni non coincidono mai esattamente. Dove si sovrappongono si vede una cucitura scura; dove non si toccano, trapela un filetto di sfondo. Un plotter da taglio taglia entrambe le linee.

Difetto 3: ci si fida dei pixel a occhi chiusi

Blocchi JPEG, antialiasing e rumore del generatore sono semplici pixel per un ricalco, che quindi li contorna fedelmente. Il risultato ha bordi a scalini, isole di colore minuscole e migliaia di nodi per una forma che un grafico disegnerebbe con venti.

Cosa fa invece una ricostruzione

svgize parte dall'altro capo: quale progetto, fatto di tinte piatte, sfumature e curve pulite, avrebbe prodotto questi pixel, tenuto conto di come l'immagine è stata degradata? Prima misura sfocatura, qualità JPEG e rumore. Poi verifica ipotesi di sfumatura sui pixel e tiene quelle che li spiegano. Assegna ogni pixel alla forma a cui appartiene, così il confine tra due colori è una sola curva, condivisa da entrambi. Adatta quella curva con precisione di frazione di pixel, trova gli angoli e liscia i tratti dove la sorgente stessa ondeggia.

La differenza si legge in tre numeri accanto a ogni risultato: tracciati, colori e dimensione del file. Un logo pulito è pochi tracciati, pochi colori e pochi kilobyte.

Guardalo sul tuo file