comment pixelliser un SVG sans anticrénelage

21

J'ai créé une carte dans Inkscape et je dois maintenant la changer en bitmap ou en .png. La carte sera interprétée par un programme informatique qui recherchera les couleurs exactes de sorte que les bords doivent être nets. lorsque j'exporte un .png avec inkscape, utilise un convertisseur de fichiers en ligne ou même fais une capture d'écran, il est toujours anti-aliasé. Aidez-moi.entrez la description de l'image ici

entrez la description de l'image ici

William W
la source
Hmm ... il ne semble pas qu'Inkscape offre une option aliasée lors de l'exportation vers un raster. Vous pouvez essayer d'ouvrir le SVG dans une application raster (telle que PS) et voir s'il vous propose une option d'alias.
DA01
Photoshop 7.0 que j'ai ne semble pas avoir la possibilité d'ouvrir des SVG. Je n'ai aucun autre programme capable de le faire. s'il existe des logiciels gratuits qui pourraient fonctionner, je suis intéressé par ce qu'ils sont.
William W
Quant aux applications raster Le GIMP est open source. Paint.net est un logiciel gratuit. Je ne sais pas si l'un ou l'autre prend en charge l'ouverture de SVG.
DA01
Il semble qu'il puisse y avoir un moyen de le faire dans le navigateur: stackoverflow.com/questions/16889078/…
DA01
Oh, et enfin ... une solution de contournement peut être de prendre la capture d'écran, de la mettre dans PhotoShop, puis d'utiliser le filtre / outil "Posterize" de PhotoShop pour réduire la palette de couleurs aux seules couleurs unies que vous souhaitez utiliser.
DA01

Réponses:

17

La version de développement d'Inkscape (prochaine version 0.91) a une bascule anti-aliasing globale dans la fenêtre Propriétés du document, qui devrait également fonctionner pour l'exportation. Recherchez «Versions de développement» sur la page de téléchargement:

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

Krzysztof Kosiński
la source
merci, savez-vous combien de temps avant sa sortie? Je ne l'ai pas vu sur le site.
William W
La phase actuelle est "Frost". Vous pouvez voir les progrès vers la sortie ici: inkscape.org/en/develop/next-release Je pense que cela devrait être publié dans les 5 prochains mois.
Krzysztof Kosiński
Sensationnel. Ils sautent de 0,48 à 0,91! Certes, c'est moins de la «moitié d'une version» mais c'est quand même une énorme mise à jour dans le monde d'Inkscape. La version 1.0 nous voici!
DA01
5
Cela n'a malheureusement aucun effet sur l'exportation ...
Ray
Cela n'a pas fonctionné pour moi lors de l'exportation en tant que fichier PNG.
test du
12

Une solution simple consiste à exporter au format PDF, puis à utiliser Ghostcript sur le PDF résultant. Utilisation d'une image fraise d'Openclipart et de la commande

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

J'obtiens le résultat suivant.

Image de fraise non antialisée. Zoom sur une image de fraise non antialisée.

Si votre image comprend également du texte, vous devrez -dTextAlphaBits=1également l' ajouter . Remplacez le -r72par une valeur différente pour redimensionner l'image.

Karl Ove Hufthammer
la source
2
C'est sûr une façon détournée de le faire, mais goshdang si cela n'a pas fonctionné.
obskyr
11

Inkscape 0.91 et supérieur a la possibilité de basculer l'anticrénelage. Vous pouvez y accéder via la fenêtre Propriétés du document (Maj + Ctrl + D). Lorsqu'elle est activée, ce qui est la valeur par défaut, cette image d'un tableau de triangles ressemble à ceci.

entrez la description de l'image ici

Lorsqu'elle est désactivée, l'image semble plus fluide.

entrez la description de l'image ici

Comme d'autres l'ont mentionné, cela n'a actuellement aucun effet sur l'exportation png. L'anticrénelage est toujours activé et les écarts entre les triangles sont toujours visibles.

Ce que fait Inkscape lorsque vous désactivez l'anticrénelage est l'ajout shape-rendering="crispEdges"au fichier. Ouvrez votre SVG dans un éditeur de texte et regardez quelque part autour de la ligne 19 et vous devriez le voir.

entrez la description de l'image ici

Heureusement, cette balise est lue et respectée lors de l'importation du SVG dans GIMP. GIMP peut importer un SVG et définir la résolution d'importation, ce qui signifie que vous pouvez mettre à l'échelle votre png à l'importation pour qu'il soit à la taille souhaitée. Il le recadrera jusqu'aux limites de la page.

entrez la description de l'image ici

Vous pouvez maintenant enregistrer l'image et l'anticrénelage sera désactivé.

entrez la description de l'image ici

Cela a été signalé plusieurs fois comme un bug:

hellocatfood
la source
1
Explication parfaite! Pour l'illustration, une forme diagonale ou ronde aurait rendu l'effet beaucoup plus visible.
Max N
J'ai trouvé que le chargement dans GIMP ne fonctionnait pas à moins que je ne traque chaque instance de shape-rendering:autoSVG et que je ne le convertisse crispEdges. Il s'avère que beaucoup de chemins (peut-être tous) avaient la :autospécification dans leur style.
Mutant Bob
2

Vous pouvez également utiliser la shape-renderingpropriété SVG pour rendre les bords nets.

En SVG XML qui ressemble à ceci:

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

Dans l'interface utilisateur d'Inkscape, vous pouvez définir cela manuellement à l'aide de l' éditeur XML ( Ctrl+ Shift+ X), comme indiqué dans cette capture d'écran:

Éditeur XML d'Inkscape

Sélectionnez le nœud auquel la propriété doit s'appliquer. Ici, je l'applique à un groupe de chemins. La propriété est affichée à droite. Pour l'ajouter, reproduisez le texte que vous voyez dans le coin inférieur droit, puis appuyez sur Set.

Drew Noakes
la source