Я сделал карту в inkscape, и теперь мне нужно изменить ее на растровое изображение или .png. Карта будет интерпретирована компьютерной программой, которая будет искать точные цвета, поэтому края должны быть четкими. когда я экспортирую .png с помощью inkscape, использую онлайн-конвертер файлов или даже делаю снимок экрана, он всегда сглаживается. помощь.
Разрабатываемая версия Inkscape (предстоящий выпуск 0.91) имеет глобальный переключатель сглаживания в окне свойств документа, который также должен работать для экспорта. Найдите «Версии для разработчиков» на странице загрузки:
В Inkscape 0.91 и более поздних версиях есть возможность переключать сглаживание. Доступ к этому можно получить через окно свойств документа (Shift+Ctrl+D). При включении, которое установлено по умолчанию, это изображение массива треугольников выглядит так.
В выключенном состоянии изображение выглядит более плавным.
Как уже упоминалось, в настоящее время это не влияет на экспорт png. Сглаживание все еще включено, и промежутки между треугольниками все еще видны.
Когда вы отключаете сглаживание, Inkscape добавляет shape-rendering="crispEdges"
в файл. Откройте свой SVG в текстовом редакторе и посмотрите где-нибудь в строке 19, и вы должны его увидеть.
К счастью, этот тег читается и соблюдается при импорте SVG в GIMP. GIMP может импортировать SVG и устанавливать разрешение импорта, а это означает, что вы можете масштабировать свой png при импорте до желаемого размера. Он обрежет его до границ страницы.
Теперь вы можете сохранить изображение, и сглаживание будет отключено.
Несколько раз об этом сообщалось как об ошибке:
shape-rendering:auto
в SVG и не преобразовал его в crispEdges
. Оказывается, многие пути (возможно, все) имеют :auto
спецификацию в своем стиле.shape-rendering
только один раз появился в SVG, в отличие от того, что нашел MutantBob.) Кроме того, получил точно такие же результаты от ImageMagick (та же библиотека, что и GIMP, я уверен): magick -density 96 image.svg image.png
Обратите внимание, что magick +antialias ...
пока не работает с SVG, и, таким образом, это свойство документа Inkscape должно быть настроен на управление алиасингом как с GIMP, так и с IM (и IM должен использовать эту информацию, чтобы исправить это).Одним из простых решений является экспорт в PDF, а затем использование Ghostcript для полученного PDF. Используя изображение клубники из Openclipart и команду
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m \
-r72 -dGraphicsAlphaBits=1 \
-sOutputFile=image.png image.pdf
Я получаю следующий результат.
Если ваше изображение также включает текст, вам также нужно добавить его -dTextAlphaBits=1
. Измените значение -r72
на другое, чтобы масштабировать изображение.
magick +antialias -density 72 image.pdf image.png
Или, в один шаг из SVG: inkscape --export-pdf=- image.svg | magick +antialias -density 72 pdf:- image.png
Это также как-то лучше работает с линейными эффектами, чем делать это в два этапа. Также обратите внимание, что при этом получаются несколько иные псевдонимы, чем при сохранении SVG с отключенным свойством «Использовать сглаживание» ( shape-rendering="crispEdges"
), а затем с использованием: magick -density 72 image.svg image.png
Обратите внимание, что magick +antialias...
пока не работает с SVG, но работает с PDF-файлами, как показано.Вы также можете использовать shape-rendering
свойство SVG, чтобы сделать края четкими.
В SVG XML это выглядит так:
<svg:something shape-rendering="crispEdges" ... />
В пользовательском интерфейсе Inkscape вы можете установить это вручную с помощью редактора XML ( Ctrl+ Shift+ X), как показано на этом снимке экрана:
Выберите узел, к которому должно применяться это свойство. Здесь я применяю его к группе путей. Свойство отображается справа. Чтобы добавить его, скопируйте текст, который вы видите в правом нижнем углу, затем нажмите Set.
Есть библиотека resvg , написанная на Rust. Частью проекта является приложение командной строки, которое позволит вам отображать SVG как PNG. Упомянутое приложение позволяет оптимизировать скорость, а не качество, что обычно дает желаемый результат.
Вы можете выполнить приложение, как показано ниже, как описано здесь автором.
rendersvg --shape-rendering optimizeSpeed --text-rendering optimizeSpeed --image-rendering optimizeSpeed in.svg out.png
Недостаток в том, что я не нашел ни одного бинарного релиза, поэтому вы должны скомпилировать его из исходников.
DA01
Уильям В.
DA01
DA01
DA01
джуджа