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 выполнить конвертацию. Всего наилучшего,