So rastern Sie eine SVG-Datei ohne Anti-Aliasing

21

Ich habe eine Karte in Inkscape erstellt und muss sie jetzt in eine Bitmap oder eine PNG-Datei ändern. Die Karte wird von einem Computerprogramm interpretiert, das nach genauen Farben sucht, sodass die Kanten scharf sein müssen. Wenn ich eine .png-Datei mit inkscape exportiere, einen Online-Dateikonverter verwende oder sogar einen Screenshot mache, ist diese Datei immer mit Anti-Alias ​​versehen. Hilfe.Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

William W
quelle
Hmm ... es sieht nicht so aus, als ob Inkscape beim Exportieren in ein Raster eine Alias-Option bietet. Sie können versuchen, die SVG-Datei in einer Raster-App (z. B. PS) zu öffnen, und prüfen, ob dort eine Alias-Option angeboten wird.
DA01
In Photoshop 7.0 kann ich keine SVGs öffnen. Ich habe keine anderen Programme, die das können. Wenn es irgendwelche Freeware gibt, die funktionieren könnten, bin ich daran interessiert, was sie sind.
William W
Was Raster-Apps betrifft, so ist GIMP Open Source. Paint.net ist Freeware. Nicht sicher, ob beide das Öffnen von SVG unterstützen.
DA01
Es sieht aus wie es könnte ein Weg sein , diese im Browser zu tun: stackoverflow.com/questions/16889078/...
DA01
Oh, und zum Schluss ... eine Möglichkeit zur Umgehung besteht darin, den Screenshot zu erstellen, ihn in PhotoShop einzufügen und dann mit dem Filter / Werkzeug "Posterize" von PhotoShop die Farbpalette auf die gewünschten Volltonfarben zu verkleinern.
DA01

Antworten:

17

Die Entwicklungsversion von Inkscape (kommende Version 0.91) verfügt über ein globales Anti-Aliasing-Umschaltfeld im Fenster Dokumenteigenschaften, das auch für den Export geeignet sein sollte. Suchen Sie auf der Downloadseite nach "Entwicklungsversionen":

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

Krzysztof Kosiński
quelle
danke, weißt du wie lange es dauert bis es rauskommt? Ich habe es nicht auf der Website gesehen.
William W
Die aktuelle Phase ist "Frost". Sie können den Fortschritt in Richtung der Veröffentlichung hier sehen: inkscape.org/en/develop/next-release Ich denke, es sollte innerhalb der nächsten 5 Monate veröffentlicht werden.
Krzysztof Kosiński
Wow. Sie springen von .48 auf .91! Zugegeben, das ist weniger als eine halbe Version, aber immer noch ein riesiges Update in der Inkscape-Welt. Version 1.0 hier kommen wir!
DA01
5
Es hat leider keine Auswirkungen auf den Export ...
Ray
Hat auch bei mir beim Export als PNG-Datei nicht geklappt.
Testen am
12

Eine einfache Lösung besteht darin, nach PDF zu exportieren und dann Ghostcript für die resultierende PDF zu verwenden. Verwenden eines Erdbeerbildes von Openclipart und des Befehls

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

Ich erhalte das folgende Ergebnis.

Nicht antialisiertes Erdbeerbild. Eingezoomtes nicht antialisiertes Erdbeerbild.

Wenn Ihr Bild auch Text enthält, müssen Sie auch hinzufügen -dTextAlphaBits=1. Ändern Sie den -r72Wert in einen anderen Wert, um das Bild neu zu skalieren.

Karl Ove Hufthammer
quelle
2
Das ist sicher ein Umweg, aber goshdang, wenn es nicht funktioniert hat.
Obskyr
11

Inkscape 0.91 und höher bietet die Möglichkeit, Antialiasing umzuschalten. Sie können über das Fenster Dokumenteigenschaften (Umschalt + Strg + D) darauf zugreifen. Wenn diese Option aktiviert ist (dies ist die Standardeinstellung), sieht das Bild eines Arrays von Dreiecken folgendermaßen aus.

Bildbeschreibung hier eingeben

Im ausgeschalteten Zustand wirkt das Bild weicher.

Bildbeschreibung hier eingeben

Wie bereits erwähnt, hat dies derzeit keine Auswirkungen auf den PNG-Export. Das Antialiasing ist weiterhin aktiviert und die Lücken zwischen den Dreiecken sind weiterhin sichtbar.

Was Inkscape tut, wenn Sie Antialiasing deaktivieren, wird shape-rendering="crispEdges"der Datei hinzugefügt . Öffnen Sie Ihre SVG-Datei in einem Texteditor und schauen Sie sich in Zeile 19 um. Sie sollten es sehen.

Bildbeschreibung hier eingeben

Glücklicherweise wird dieses Tag beim Importieren der SVG in GIMP gelesen und eingehalten. GIMP kann eine SVG-Datei importieren und die Importauflösung festlegen. Dies bedeutet, dass Sie Ihre PNG-Datei beim Import auf die gewünschte Größe skalieren können. Es wird es an den Seitengrenzen beschneiden.

Bildbeschreibung hier eingeben

Sie können das Bild jetzt speichern und das Antialiasing wird deaktiviert.

Bildbeschreibung hier eingeben

Dies wurde ein paar Mal als Fehler gemeldet:

hellocatfood
quelle
1
Perfekte Erklärung! Zur Veranschaulichung hätte eine diagonale oder runde Form den Effekt viel sichtbarer gemacht.
Max N
Ich fand, dass das Laden in GIMP nicht funktionierte, es sei denn, ich habe jede Instanz von shape-rendering:autoin der SVG aufgespürt und in konvertiert crispEdges. Es stellte sich heraus, dass viele Pfade (vielleicht alle) die :autoSpezifikation in ihrem Stil hatten.
Mutant Bob
2

Sie können auch die SVG- shape-renderingEigenschaft verwenden, um scharfe Kanten zu erhalten.

In SVG XML sieht das so aus:

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

In Inkscapes UI können Sie diese manuell einstellen , die unter Verwendung von XML - Editor ( Ctrl+ Shift+ X) , wie in diesem Screenshot gezeigt:

Inkscape XML Editor

Wählen Sie den Knoten aus, für den die Eigenschaft gelten soll. Hier wende ich es auf eine Gruppe von Pfaden an. Die Eigenschaft wird auf der rechten Seite angezeigt. Replizieren Sie zum Hinzufügen den Text in der unteren rechten Ecke und drücken Sie Set.

Drew Noakes
quelle