cómo rasterizar un SVG sin suavizado

21

Hice un mapa en inkscape y ahora necesito cambiarlo a un mapa de bits o .png. El mapa será interpretado por un programa de computadora que buscará colores exactos, por lo que los bordes deben ser nítidos. cuando exporto un archivo .png con inkscape, utilizo un convertidor de archivos en línea o incluso hago una captura de pantalla, siempre está suavizado. ayuda.ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

William W
fuente
Hmm ... no parece que Inkscape ofrezca una opción con alias al exportar a ráster. Puede intentar abrir el SVG en una aplicación ráster (como PS) y ver si le ofrece una opción de alias allí.
DA01
Photoshop 7.0 que tengo no parece tener la capacidad de abrir SVG. No tengo ningún otro programa que pueda hacerlo. si hay algún programa gratuito que pueda funcionar, estoy interesado en lo que son.
William W
En cuanto a las aplicaciones ráster, el GIMP es de código abierto. Paint.net es un programa gratuito. Sin embargo, no estoy seguro si cualquiera de los dos admite la apertura de SVG.
DA01
Parece que podría haber una manera de hacer esto en el navegador: stackoverflow.com/questions/16889078/…
DA01
Ah, y finalmente ... una solución alternativa puede ser tomar la captura de pantalla, ponerla en PhotoShop y luego usar la herramienta / filtro "Posterizar" de PhotoShop para reducir la paleta de colores a los colores sólidos que desea usar.
DA01

Respuestas:

17

La versión de desarrollo de Inkscape (próxima versión 0.91) tiene un alternador global anti-aliasing en la ventana Propiedades del documento, que también debería funcionar para la exportación. Busque "Versiones de desarrollo" en la página de descarga:

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

Krzysztof Kosiński
fuente
gracias, ¿sabes cuánto tiempo hasta que salga? No lo vi en el sitio.
William W
La fase actual es "Frost". Puede ver el progreso hacia el lanzamiento aquí: inkscape.org/en/develop/next-release Creo que debería lanzarse dentro de los próximos 5 meses.
Krzysztof Kosiński
Guau. ¡Están saltando de .48 a .91! De acuerdo, eso es menos de 'media versión' pero sigue siendo una gran actualización en el mundo de Inkscape. Versión 1.0 aquí vamos!
DA01
55
Lamentablemente no tiene ningún efecto en la exportación ...
Ray
Tampoco funcionó para mí al exportar como archivo PNG.
prueba
12

Una solución simple es exportar a PDF y luego usar Ghostcript en el PDF resultante. Usando una imagen de fresa de Openclipart y el comando

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

Obtengo el siguiente resultado.

Imagen de fresa sin antializar. Zoom en la imagen de fresa sin antializar.

Si su imagen también incluye texto, deberá agregarla -dTextAlphaBits=1también. Cambie el -r72a un valor diferente para reescalar la imagen.

Karl Ove Hufthammer
fuente
2
Eso sí que es una forma indirecta de hacerlo, pero si no funcionara.
obskyr
11

Inkscape 0.91 y superior tiene la capacidad de alternar el antialiasing. Se puede acceder a esto a través de la ventana Propiedades del documento (Shift + Ctrl + D). Cuando está activado, que es el valor predeterminado, esta imagen de una matriz de triángulos se ve así.

ingrese la descripción de la imagen aquí

Cuando se apaga, la imagen se ve más suave.

ingrese la descripción de la imagen aquí

Como otros han mencionado, esto actualmente no tiene ningún efecto en la exportación png. La antialias todavía está activada y los espacios entre los triángulos aún son visibles.

Lo que Inkscape está haciendo cuando deshabilita el antialiasing es agregar shape-rendering="crispEdges"al archivo. Abra su SVG en un editor de texto y mire en algún lugar alrededor de la línea 19 y debería verlo.

ingrese la descripción de la imagen aquí

Afortunadamente, esta etiqueta se lee y se adhiere al importar el SVG a GIMP. GIMP puede importar un SVG y establecer la resolución de importación, lo que significa que puede escalar su png al importar para que tenga el tamaño deseado. Lo recortará a los límites de la página.

ingrese la descripción de la imagen aquí

Ahora puede guardar la imagen y el antialiasing estará deshabilitado.

ingrese la descripción de la imagen aquí

Esto ha sido reportado como un error un par de veces:

holacatfood
fuente
1
Explicación perfecta! Para la ilustración, una forma diagonal o redonda habría hecho que el efecto fuera mucho más visible.
Max N
Encontré que cargar en el GIMP no funcionaba a menos que buscara cada instancia de shape-rendering:autoSVG y la convirtiera crispEdges. Resulta que muchos de los caminos (tal vez todos) tenían la :autoespecificación en su estilo.
Bob mutante el
2

También puede usar la shape-renderingpropiedad de SVG para hacer que los bordes sean nítidos.

En SVG XML que se ve así:

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

En la interfaz de usuario de Inkscape, puede configurarlo manualmente usando el Editor XML ( Ctrl+ Shift+ X) como se muestra en esta captura de pantalla:

Inkscape XML Editor

Seleccione el nodo al que debe aplicarse la propiedad. Aquí lo estoy aplicando a un grupo de caminos. La propiedad se muestra a la derecha. Para agregarlo, replica el texto que ves en la esquina inferior derecha y luego presiona Set.

Drew Noakes
fuente