ImageMagick читает SVG с неожиданным результатом

У меня есть вопрос о том, что я читаю SVG Images, и это действительно беспокоит меня. Для изображения SVG ниже,

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg"  version="1.1" width="100%" height="100%" viewBox="0 0 100 100">
  <defs>
    <linearGradient id="grad1">
      <stop offset="0%" stop-color="white"/>
      <stop offset="100%" stop-color="black"/>
    </linearGradient>
  </defs>
  <rect x="10" y="10" width="80" height="80" fill="url(#grad1)" stroke="blue"/>
</svg>

Когда я использую Identify -verbose sample.svg, я получил результат с "Geometry: 1x1+0+0". Но другие люди получают "Геометрия: 100x100+0+0". И, кажется, 100x100 является правильным. Почему это случилось?

1 ответ

Во время моих собственных экспериментов я заметил, что у делегата SVG по умолчанию в Imagick есть проблемы с обработкой SVG, которые содержат:

заполнить ="URL (#grad_or_imagepattern)"

Насколько мне известно, и объяснил здесь: http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=23525, Imagick "может использовать свой внутренний MSVG или внешний делегат для RSVG или I Поверьте Inkscape", если доступно.

Я рекомендую вам сделать следующее по порядку: 1. удалить Imagick 2. установить Inscape 3. добавить каталог Inscape в системный путь 4. установить Imagick

Таким образом, Imagick сможет попросить Inscape выполнить конвертацию. Всего наилучшего,

Другие вопросы по тегам