come rasterizzare un SVG senza anti-aliasing


21

Ho creato una mappa in inkscape e ora ho bisogno di cambiarla in bitmap o .png. La mappa sarà interpretata da un programma per computer che cercherà colori esatti, quindi i bordi devono essere nitidi. quando esporto un .png con inkscape, uso un convertitore di file online o addirittura faccio uno screenshot che è sempre anti-alias. Aiuto.inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Hmm ... non sembra che Inkscape offra un'opzione con alias durante l'esportazione in raster. Potresti provare ad aprire SVG in un'app raster (come PS) e vedere se ti offre un'opzione alias lì.
DA01,

Photoshop 7.0 che ho non sembra avere la possibilità di aprire SVG. Non ho altri programmi in grado di farlo. se ce ne sono di freeware che potrebbero funzionare sono interessato a quello che sono.
William W,

Per quanto riguarda le app raster, GIMP è open source. Paint.net è freeware. Tuttavia, non sono sicuro che supportino l'apertura di SVG.
DA01,

Sembra che ci potrebbe essere un modo per fare questo nel browser: stackoverflow.com/questions/16889078/...
DA01

Oh, e infine ... una soluzione potrebbe essere quella di catturare la schermata, inserirla in PhotoShop e quindi utilizzare il filtro / strumento "Posterizza" di PhotoShop per ridurre la tavolozza dei colori solo ai colori solidi che si desidera utilizzare.
DA01,

Risposte:


17

La versione di sviluppo di Inkscape (prossima versione 0.91) ha un interruttore globale anti-aliasing nella finestra Proprietà documento, che dovrebbe funzionare anche per l'esportazione. Cerca "Versioni di sviluppo" nella pagina di download:

http://www.inkscape.org/en/download/


grazie, sai quanto tempo prima che esca? Non l'ho visto sul sito.
William W,

La fase corrente è "Gelo". Puoi vedere i progressi verso l'uscita qui: inkscape.org/en/develop/next-release Penso che dovrebbe essere rilasciato entro i prossimi 5 mesi.
Krzysztof Kosiński,

Wow. Stanno saltando da .48 a .91! Certo, è meno di "mezza versione" ma è comunque un enorme aggiornamento nel mondo di Inkscape. Versione 1.0 qui arriviamo!
DA01,

5
Purtroppo non ha alcun effetto sull'esportazione ...
Ray

Inoltre non ha funzionato per me durante l'esportazione come file PNG.
test del

12

Una soluzione semplice è esportare in PDF, quindi utilizzare Ghostcript sul PDF risultante. Usando un'immagine fragola da Openclipart e il comando

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m \
   -r72 -dGraphicsAlphaBits=1 \
   -sOutputFile=image.png image.pdf 

Ottengo il seguente risultato.

Immagine di fragola non antializzata. Ingrandita immagine fragola non antializzata.

Se la tua immagine include anche testo, dovrai aggiungere -dTextAlphaBits=1anche tu . Modificare -r72un valore diverso per ridimensionare l'immagine.


2
Questo è sicuramente un modo indiretto per farlo, ma cavolo se non ha funzionato.
obskyr,

11

Inkscape 0.91 e versioni successive ha la possibilità di attivare o disattivare l'antialias. È possibile accedervi dalla finestra Proprietà documento (Maiusc + Ctrl + D). Se attivata, che è l'impostazione predefinita, l'immagine di una matrice di triangoli è simile alla seguente.

inserisci qui la descrizione dell'immagine

Quando è spento, l'immagine appare più liscia.

inserisci qui la descrizione dell'immagine

Come altri hanno già detto, questo attualmente non ha alcun effetto sull'esportazione png. L'antialiasing è ancora attivo e gli spazi tra i triangoli sono ancora visibili.

Ciò che Inkscape sta facendo quando si disabilita l'antialias è l'aggiunta shape-rendering="crispEdges"al file. Apri il tuo SVG in un editor di testo e guarda da qualche parte intorno alla linea 19 e dovresti vederlo.

inserisci qui la descrizione dell'immagine

Fortunatamente, questo tag viene letto e rispettato durante l'importazione di SVG in GIMP. GIMP può importare un file SVG e impostare la risoluzione di importazione, il che significa che puoi ridimensionare il tuo png all'importazione in modo che sia la dimensione desiderata. Lo ritaglierà fino ai confini della pagina.

inserisci qui la descrizione dell'immagine

Ora puoi salvare l'immagine e l'antialiasing sarà disabilitato.

inserisci qui la descrizione dell'immagine

Questo è stato segnalato un bug un paio di volte:


1
Spiegazione perfetta! Per l'illustrazione, una forma diagonale o rotonda avrebbe reso l'effetto molto più visibile.
Max N,

Ho scoperto che il caricamento in GIMP non ha funzionato a meno che non abbia cercato tutte le istanze shape-rendering:autoin SVG e convertito in crispEdges. Si scopre che molti percorsi (forse tutti) avevano le :autospecifiche nel loro stile.
Mutante Bob,

2

Puoi anche usare la shape-renderingproprietà SVG per rendere i bordi nitidi.

In XML SVG che assomiglia a:

<svg:something shape-rendering="crispEdges" ... />

Nell'interfaccia utente di Inkscape è possibile impostarlo manualmente utilizzando l' editor XML ( Ctrl+ Shift+ X) come mostrato in questo screenshot:

Inkscape XML Editor

Seleziona il nodo a cui applicare la proprietà. Qui lo sto applicando a un gruppo di percorsi. La proprietà è visualizzata sulla destra. Per aggiungerlo, replica il testo che vedi nell'angolo in basso a destra, quindi premi Set.

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.