Hice un mapa en Inkscape y ahora necesito cambiarlo a un mapa de bits o .png. El mapa será interpretado por un programa informático que buscará los colores exactos, por lo que los bordes deben ser nítidos. cuando exporto un .png con inkscape, uso un convertidor de archivos en línea o incluso tomo una captura de pantalla, siempre aparece suavizado. ayuda.
La versión de desarrollo de Inkscape (próxima versión 0.91) tiene una opción de suavizado global 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:
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í.
Cuando está apagado, la imagen se ve más suave.
Como han mencionado otros, esto actualmente no tiene ningún efecto en la exportación png. El antialiasing aún está activado y los espacios entre los triángulos aún son visibles.
Lo que está haciendo Inkscape cuando deshabilita el antialiasing es agregar shape-rendering="crispEdges"
al archivo. Abra su SVG en un editor de texto y mire alrededor de la línea 19 y debería verlo.
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 en la importación para que tenga el tamaño deseado. Lo recortará hasta los límites de la página.
Ahora puede guardar la imagen y el antialiasing se desactivará.
Esto ha sido reportado como un error un par de veces:
shape-rendering:auto
en el SVG y las convirtiera a crispEdges
. Resulta que muchos de los caminos (quizás todos) tenían la :auto
especificación en su estilo.shape-rendering
solo apareció una vez en el SVG a diferencia de lo que encontró MutantBob). Además, obtuve exactamente los mismos resultados de ImageMagick (la misma biblioteca que GIMP, estoy seguro): tenga en magick -density 96 image.svg image.png
cuenta que magick +antialias ...
aún no funciona con SVG y, por lo tanto, esta propiedad de documento de Inkscape debe configurarse para controlar los alias tanto con GIMP como con IM (y IM debería usar esta información para solucionarlo).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.
Si su imagen también incluye texto, deberá agregarlo -dTextAlphaBits=1
también. Cambie -r72
a un valor diferente para cambiar la escala de la imagen.
magick +antialias -density 72 image.pdf image.png
O, en un solo paso desde SVG: inkscape --export-pdf=- image.svg | magick +antialias -density 72 pdf:- image.png
Esto también funciona mejor con efectos de línea que hacerlo en dos pasos. Tenga en cuenta, también, que esto produce un alias ligeramente diferente que guardar el SVG con la propiedad "Usar antialiasing" desactivada ( shape-rendering="crispEdges"
), y luego usar: magick -density 72 image.svg image.png
Tenga en cuenta que magick +antialias...
aún no funciona con SVG, pero sí con archivos PDF, como se muestra.También puede usar la shape-rendering
propiedad de SVG para hacer que los bordes sean nítidos.
En SVG XML que se parece a:
<svg:something shape-rendering="crispEdges" ... />
En la interfaz de usuario de Inkscape, puede configurar esto manualmente usando el Editor XML ( Ctrl+ Shift+ X) como se muestra en esta captura de pantalla:
Seleccione el nodo al que se debe aplicar la propiedad. Aquí lo estoy aplicando a un grupo de caminos. La propiedad se muestra a la derecha. Para agregarlo, replique el texto que ve en la esquina inferior derecha, luego presione Set.
Hay una biblioteca resvg escrita en Rust. Parte del proyecto es una aplicación de línea de comandos que le permitiría representar SVG como PNG. Dicha aplicación permite optimizar la velocidad en lugar de la calidad, lo que generalmente da el resultado deseado.
Puede ejecutar la aplicación de la siguiente manera, como se describe aquí por el autor.
rendersvg --shape-rendering optimizeSpeed --text-rendering optimizeSpeed --image-rendering optimizeSpeed in.svg out.png
El inconveniente es que no he encontrado ninguna versión binaria, por lo que debe compilarla desde la fuente.
DA01
Guillermo W.
DA01
DA01
DA01
joojaa