SVG - это формат векторного изображения, поэтому преобразование растрового изображения (jpg, png, gif и т. Д.) В svg может быть сложной задачей.
Я попытался преобразовать простое изображение: белый фон с красным кружком и синий квадрат с помощью:
convert input.png output.svg
вот пример из файла SVG, созданный этой командой:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg width="800" height="600">
<circle cx="0" cy="0" r="1" fill="white"/>
<circle cx="1" cy="0" r="1" fill="white"/>
...
<circle cx="218" cy="151" r="1" fill="rgb(255,247,247)"/>
<circle cx="219" cy="151" r="1" fill="rgb(255,40,40)"/>
<circle cx="220" cy="151" r="1" fill="red"/>
<circle cx="221" cy="151" r="1" fill="rgb(255,127,127)"/>
<circle cx="222" cy="151" r="1" fill="white"/>
<circle cx="223" cy="151" r="1" fill="white"/>
...
<circle cx="799" cy="599" r="1" fill="white"/>
</svg>
в основном ImageMagick создал круг радиуса 1px для каждого пикселя, покрасив его в правильный цвет. Начиная с 5KB png мой вывод был 22 МБ svg, это объясняет огромный размер файла, который вы получили.
Согласно ImageMagick документации (см here), это происходит потому, что "AutoTrace" (см here) библиотека отсутствует:
«Если "библиотека AutoTrace" не установлен и скомпилирован в IM, то генерируется вывод SVG - огромное количество одиночных пикселов кругов, генерирующих двоичный результат, , а не гладкий SVG, набросанный image. Такие изображения огромны путем сравнения, d часто берут очень длинное раз, чтобы отдать SVG render. "
как только вы установили библиотеку автоматической трассировки, вы можете попробовать что-то вроде этого:
convert autotrace:A.gif A_traced.png
Вы забыли написать PNG размер файла. Png to svg - непростая задача, можете ли вы использовать другие преобразователи? http://en.wikipedia.org/wiki/Raster_to_vector http://en.wikipedia.org/wiki/Comparison_of_raster_to_vector_conversion_software – ViliusL