Я хочу визуализировать значительное количество файлов SVG (содержащих штриховые рисунки) в формате PNG (и, возможно, в других форматах), поэтому я планирую написать скрипт, который сделает это для меня. Проблема в том, что мне нужно выбрать программу, чтобы сделать шаг преобразования. Установленные решения - rsvg и Inkscape, и я не хочу использовать ни одно из них.

Когда я отрисовываю изображение с помощью rsvg, я замечаю, что ортогональные линии, которые соединяются с другими линиями, имеют тенденцию иметь слабые тени на их "внутренней" стороне, которые исчезают к одному концу (например, <rect/> имеет тенденцию иметь их на внутренней стороне каждого края, исчезают, когда они идут по часовой стрелке, кроме как в верхней части по некоторым причинам). Эти тени почти невозможно увидеть без 3-кратного увеличения или увеличения, но они все еще могут сделать линии нечеткими. Я бы чувствовал небрежное рендеринг изображений в растровый формат, выглядящий таким образом, тем более что моя штриховая графика содержит много ортогональных линий.

ImageMagick использует rsvg для обработки файлов SVG. Это означает, что любой SVG, который я рендерил с помощью ImageMagick, будет иметь такую же проблему. Я не против использовать его, если смогу изменить делегата SVG.

Я не знаю, как выглядит вывод Inkscape, потому что я давно его не использовал. Он опирается на длинный список бесполезных библиотек и программ GNOME, которые могли бы испортить мою систему, которые я потратил много времени после того, как в последний раз использовал GNOME. Я не хочу пробовать это снова, чтобы посмотреть, будет ли качество лучше.

Последнее, что я попробовал, была программа под названием Anti-Grain Geometry, которая, кажется, не поддерживается и не компилируется.

1 ответ1

0

Я попробовал функцию рендеринга PhatomJS, и она создает более чистый рендер, чем rsvg.

Плохие части этого решения:

  • Это довольно большая программа для того, что я делаю с ней, около 15 МБ

  • Это требует сценариев в Javascript в дополнение к моим предыдущим сценариям

  • Он не распознает SVG так же легко, как rsvg, что создает дополнительные сложности, связанные с переносом SVG в HTML.

Хорошо:

  • PhantomJS использует очень мало общих зависимостей, поэтому его установка проста для большинства пользователей.

  • Это создает возможность извлечения файлов по сети

  • Решает проблему

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .