Abbiamo tentato di rendere le opzioni di output il più semplici possibili, ma ecco tutti i dettagli cruenti:
Le immagini vettoriali che produciamo consistono di forme, formate da loop che non si incrociano. I loop sono sequenze di curve in cui ciascuna curva inizia dove l'ultima finisce, e l'ultima curva finisce all'inizio della prima curva. Produciamo righe, archi circolari ed ellittici, curva di Bezier quadratiche e cubiche.
Le forme hanno esattamente un loop 'positivo', che definisce l'area che deve essere riempita dal colore della forma. In alcuni casi, le forme possono anche avere loop 'negativi', che rappresentano ritagli che non devono essere riempiti dal colore della forma. I loop negativi devono essere interamente inclusi nel loop positivo della forma e non devono toccarsi fra di loro.
Per immagini di input che contengono disegni a tratteggio e geometria tratteggiata, come disegni CAD, tabelle, diagrammi tecnici, e simili, è naturale aspettarsi che noi produciamo geometria tratteggiata come output. Questo tipo di vettorializzazione viene definito centerline trace. Al momento non supportiamo la funzione centerline trace, per questo motivo tutta la geometria tratteggiata viene rappresentate come forme strette riempite.
Tieni presente che la sezione Tipo di tratti copre i tipi di tratti per i percorsi che costituiscono le forme riempite. Non è correlata al centerline trace.
Quando due forme in un'immagine vettoriale sono adiacenti con i bordi che coincidono, molti motori di rendering vettoriale le disegneranno comunque con una sottile riga bianca fra le forme. È un difetto in questi motori di rendering, ma talmente comune che è improbabile sia corretto in un prossimo futuro.
Abbiamo creato una funzione che chiamiamo Gap Filler per risolvere questo problema. Funziona disegnando un riga sottile sotto il confine fra le due forme e con un colore che è la media dei due colori delle forme. Questo previene che lo sfondo sia visibile e risolve efficacemente il problema.
I tratti che sono tracciati a una larghezza costante indipendentemente dal livello di zoom sono chiamati tratti senza scala. Questa funzione ha supporto completo in SVG e il nostro rasterizzatore vettoriale PNG, e supporto parziale in EPS, PDF, e DXF.
SVG supporta larghezze di tratti senza scala arbitrarie e usufruisce di supporto diffuso fra i visualizzatori e gli editor SVG, tranne Adobe Illustrator, dove il tipo senza scala viene ignorato e i tratti sono ridimensionati con il livello di zoom. Il nostro rasterizzatore vettoriale PNG ha anche il completo supporto per i tratti senza scala.
I formati EPS e PDF supportano solamente i tratti senza scala di un'ampiezza di display minima non specificata, che in genere è di un pixel o meno. Adobe sconsiglia ufficialmente il loro uso e test con Ilustrator 2023 mostrano difetti significativi nel trattamento di questi stili.
DFX supporta anche i tratti senza scala di un'ampiezza di display minima, che è uno stile di tratti molto comune nei file DFX.
In genere raccomandiamo di usare i tratti senza scala solamente per SVG, DFX e PNG.
Le immagini vettoriali consistono di forme che sono disegnate in un ordine particolare, in genere l'ordine in cui appaiono nel file che definisce l'immagine vettoriale.
Alcune forme possono avere il loro ordine di disegno modificato senza alterare l'aspetto dell'immagine vettoriale. Per esempio, pensa a due punti separati su un rettangolo. Il rettangolo deve essere disegnato prima dei punti, ma i punti possono essere disegnati uno prima dell'altro senza influire sull'aspetto dell'immagine vettoriale.
Qualsiasi di questi gruppi di forme il cui riordinamento interno non modifica l'aspetto dell'immagine può essere sullo stesso Livello. I Livelli possono essere disegnati in ordine, ma le forme in un Livello possono essere riordinate o incluse in gruppi senza modificare l'aspetto dell'immagine.
Supportiamo vati formati di file di esportazione, ma non tutti i formati supportano tutte le funzioni.
SVG 1.1 è decisamente la versione più comunemente usata di SVG, ma ai fini dei nostri file di output, l'unica differenza con la versione SVG 1.0 è solamente l'intestazione.
Nessuno dei due supporta formalmente tratti senza scala, che erano stati introdotti in SVG Tiny 1.2 e fanno parte delle specifiche della versione SVG 2.0 non ancora pubblicata. In pratica, i tratti senza scala sono supportati nella maggior parte dei visualizzatori e degli editor, quindi li consentiremo in tutti i nostri output SVG.
Encapsulated Postscript (EPS) è un formato legacy creato da Adobe e usato principalmente per la stampa. Non ha supporto per il raggruppamento e la trasparenza, e ha supporto limitato per i tratti senza scala.
Attualmente supportiamo la versione 3 di EPS, che è la versione più usata.
Portable Document Format (PDF) di Adobe viene usato principalmente come formato di interscambio per documenti, ma contiene anche una capacità di grafica vettoriale con un numero ragionevolmente completo di funzioni. PDF non supporta il raggruppamento e ha supporto limitato per i tratti senza scala.
Esportiamo la versione 1.4 di PDF, la prima versione che supporta la trasparenza.
AutoCAD's Drawing Exchange Format (DXF) è un formato di interscambio CAD ampiamente usato. Sebbene la specifica DXF supporti i livelli (gruppi), e tutti i tipi di curva disponibili, il supporto fra i lettori DFX varia considerevolmente.
Esportiamo DXF versione AC1021 (2007).
Portable Network Graphics (PNG) è un formato di immagine rasterizzata che supporta la trasparenza. PNG è un formato bitmap, non un formato vettoriale, ma supportiamo l'esportazione in PNG in quanto è usato comunemente per il tipo di immagini che produciamo.
Al momento, non supportiamo fattori di scala arbitrari. L'output PNG che produciamo è esattamente 4 volte più ampio e alto dell'immagine di input, fino a un massimo di 4 megapixel. Queste limitazioni saranno eliminate in futuro.
Il processo di vettorializzazione produce un insieme di percorsi che definiscono le forme presenti nell'immagine È più naturale riempire queste forme con i loro colori rispettivi in modo che l'immagine risultante sia molto simile all'input bitmap, ma con bordi più nitidi e l'abilità di essere ridimensionata senza perdita di qualità.
Ma alcune applicazioni sono più interessate nei percorsi, e in questo caso avrebbe più senso tratteggiare le forme, o i limiti fra le forme.
Traccia tutte le curve della forma esattamente come se le stessi riempendo, ma con uno stile di disegno definito dallo stile dei tratti invece che dallo stile di riempimento implicito.
Se due forme si toccano il bordo fra le forme sarà tracciato due volte: una volta per ciascuna forma.
I ritagli producono sempre due tratti per bordo. Le forme sovrapposte producono un tratto fra una forma e quelle interamente contenute dalla forma, e due tratti fra forme adiacenti ove una non contiene l'altra.
Traccia tutti i bordi fra le forme una volta.
Al contrario di Traccia forme, che in genere traccia ciascun bordo due volte (una volta per ciascuna forma affiancata), questo Stile di disegno traccia ogni bordo fra le forme solamente una volta.
Questo è utile per l'incisione laser, il taglio di vinile ecc.
Si può pensare alle forme di un'immagine vettoriale come sovrapposte l'una sull'altra, o ritagliate l'una dall'altra. Possiamo produrre entrambe i tipi.
Colloca le forme in ritagli nelle forme sottostanti. Questo significa che tutte le forme sono a un singolo livello, e nessuna forma è sopra un'altra forma.
Questo semplifica la funzione Gap Filler poiché consente il collocamento di tutti i tratti di Gap Filler in un singolo livello sotto tutte le forme. Tuttavia, saranno necessari più tratti Gap Filler, in quanto sono richiesti quando le forme sono l'una accanto all'altra e si toccano, invece di una sull'altra.
In aggiunta, genera un file più grande perché le forme che specificano i ritagli devono essere incluse.
A seconda dell'immagine e delle tue preferenze, questo può anche rendere più facile o difficile modificare il risultato in un editor vettoriale. In particolare, i ritagli rendono più facile separare un componente dell'immagine dall'altro in quanto la forma visiva di ciascun componente non si basa su un altro componente che potrebbe essere sovrapposto su di esso. D'altro canto, se l'intenzione è quella di mantenere tutte le parti dell'immagine insieme, i ritagli rendono più difficile modificare la forma precisa di un componente perché la modifica di una forma richiederà modifiche corrispondenti ai ritagli che la contengono.
Colloca le forme una sull'altra. Pensa a una torta a diversi strati in cui gli strati più piccoli sono sovrapposti su quelli più grandi.
Questa opzione in genera minimizza le dimensioni del file e il numero di tratti Gap Filler. Ma complica la caratteristica Gap Filler perché i tratti Gap Filler devono essere interfogliati fra le forme per le quali sono richiesti e la forma che li contiene. Ciò ha anche l'effetto collaterale di far sì che piccole parti dei tratti Gap Filler protrudano dietro le forme per le quali sono previsti. Possiamo risolvere questo problema usando tratti senza scala, o ritagliando i tratti Gap Filler. Raccomandiamo di usare i tratti senza scala ogniqualvolta sia possibile.
Le forme sovrapposte facilitano anche la modifica del confine fra una forma e la forma sottostante, in quanto tale confine non viene duplicato nel ritaglio. Ma possono rendere più difficile separare un componente dell'immagine in quanto l'aspetto di ciascuna forma dipende dalle forme sovrapposte su di essa.
I formati di file vettoriali come SVG supportano la raccolta di diverse forme in gruppi. Tali gruppi sono principalmente utili a scopo organizzativo e per facilitare l'editing, consentendo di modificare simultaneamente tutte le forme in un gruppo.
SVG dispone di supporto completo per i gruppi. Né EPS né PDF supporta i gruppi. DXF supporta i livelli, che sono simili a gruppi.
Questa sezione controlla in che modo sono raggruppate le forme.
Raggruppamento delle forme per colore del riempimento.
Quando la modalità Sovrapposizione forme è Ritagli, tutte le forme di un dato colore formano un singolo gruppo.
Quando la modalità Sovrapposizione forme è Sovrapposte, in genere non è possibile raggruppare insieme tutte le forme di un dato colore, poiché tutte le parti di un gruppo devono occupare la stessa posizione nell'ordine di disegno dell'immagine vettoriale. Per questo motivo, nelle immagini Sovrapposte, raggruppiamo solamente le forme di un dato colore che occupano insieme lo stesso livello.
Raggruppa insieme tutte le forme che hanno lo stesso padre.
Se una forma è interamente contenuta in un'altra forma, consideriamo la forma esterna come Padre della forma interna. Tutte le forme che non sono interamente contenute in un'altra forma hanno come padre l'immagine vettoriale stessa e sono raggruppate insieme.
Raggruppa le forme insieme secondo il loro livello di ordine di disegno.
I Livelli di ordine di disegno sono gruppi di forme il cui ordine di disegno interno può essere liberamente cambiato senza modificare l'aspetto dell'immagine.
Supportiamo l'identificazione speciale di certe forme parametrizzate, come cerchi, ellissi, rettangoli, triangoli isosceli, e stelle, tutti con angoli di rotazione e raggi di angolo arbitrari. L'adattamento di queste forme comuni produce forme con geometria perfetta e trattamento uniforme degli angoli. Alcuni formati di esportazione hanno supporto nativo per alcune di queste forme, e noi lo sfruttiamo per rendere i file che ne risultano facili da modificare.
Offriamo un controllo con granularità fine per quali tipi di curve possono essere esportati. Anche ciascun formato di file e alcune altre opzioni hanno le proprie limitazioni su quali tipi di curve sono permessi, e sono sempre usate le opzioni più limitative.
Supportate da SVG, DFX, e dal nostro rasterizzatore vettoriale PNG, le Curve di Bézier quadratiche sono definite da due endpoint e da un singolo punto di controllo. La direzione tangenziale della curva verso un endpoint è sempre parallela alla riga che connette l'endpoint al punto di controllo.
Se le curve di Bézier quadratiche sono disattivate, passiamo automaticamente alle Curve di Bézier cubiche, agli archi ellittici e alle righe, in tale ordine.
Supportate da tutti i formati di esportazione, le Curve di Bézier cubiche sono definite da due endpoint e da due punti di controllo. La direzione tangenziale della curva verso un endpoint è sempre parallela alla riga che connette l'endpoint al punto di controllo corrispondente.
Se le Curve di Bézier cubiche sono disattivate, passiamo automaticamente alle Righe.
Supportati da SVG, DXF, e dal nostro rasterizzatore vettoriale PNG, gli Archi circolari sono definiti da un centro, un raggio, un angolo iniziale e un angolo di apertura.
Se gli Archi circolari sono disattivati, passiamo automaticamente agli Archi ellittici, alle Curve di Bézier cubiche, e alle righe in tale ordine.
Supportati da SVG, DXF, e dal nostro rasterizzatore vettoriale PNG, gli Archi ellittici sono definiti da un centro, un asso maggiore e un asso minore, un angolo di rotazione, un angolo iniziale e un angolo di apertura.
Se gli Archi ellittici sono disattivati, passiamo automaticamente alle Curve di Bézier cubiche, e alle righe in tale ordine.
Se le curve devono essere convertite in uno o più segmenti, questa sezione consente di controllare la qualità dell'adattamento.
Come indicato sopra, un difetto presente quasi ovunque nei motori di rasterizzazione delle immagini vettoriali è che il colore di sfondo può essere visibile fra le forme che si toccano, anche quando non esiste unno spazio nella geometria alla base. Questo in genere mostra righe bianche sottili che dividono il risultato in pezzi di puzzle.
Per risolvere questo problema puoi abilitare Gap Filling che inserisce piccoli tratti dietro e fra le forme che si toccano usando il colore medio delle due forme in questione. Questo previene che lo sfondo sia visibile.
Quando lo Stile di disegno è impostato su Tratti Forme o Tratti bordi, questa sezione controlla il tipo di tratti.