Я использую php imagemagic для конвертации SVG в JPG, и я использую приведенную ниже команду для конвертации.
convert -density 250 source.svg target.jpg
Я могу успешно конвертировать SVG в JPG, но некоторые элементы в SVG отсутствуют. Пожалуйста, проверьте ниже пример
Выходной JPG
Здесь хорошо видно, что светло-серые оттенки по бокам заменены на белые. Может кто-нибудь, дайте мне знать, как это исправить.
К вашему сведению вот ссылка на скачивание актуального SVG
https://drive.google.com/file/d/1vC5yaXds7ogcsTWjaDzkXZZFyKzLCsgf/view?usp=sharing
Какой рендерер SVG вы используете? Это может быть внутренний Imagemagick MSVG / XML, делегат RSVG или Inkscape (в порядке увеличения функциональности). Вы можете узнать это, добавив -verbose в вашу командную строку.
convert -verbose -density 250 source.svg target.jpg
Я использовал Imagemagick 6.9.10.11 Q16 Mac OSX с его внутренним рендерером MSVG / XML, RSVG 2.42.2_2 и Inkscape 0.92.3_4. Все три дали разные результаты. RSVG был худшим. Inkscape был лучшим. Вот мои результаты, используя вашу команду.
convert -density 250 MSVG:source.svg target_msvg.jpg
convert -density 250 RSVG:source.svg target_rsvg.jpg
convert -density 250 source.svg target_inkscape.jpg
Обычно RSVG работает лучше, чем MSVG Imagemagick. Но здесь, похоже, хуже. Это может быть связано с тем, как я изменил свой файл Delegates.xml, чтобы иметь возможность запускать RSVG, пока установлен Inkscape. Также рендерер MSVG был улучшен за последние несколько выпусков. Так что более старая версия может не дать такого хорошего результата.
Наконец я нашел обходной путь для этого. Я преобразовал SVG в изображение холста (формат base64) через JavaScript и через php я преобразовал данные base64 в изображение jpg.