Преобразование svg в формате base64 в png

1

Мне нужно преобразовать svg, закодированный в base64, в png, а затем вернуть его клиенту, который будет отображаться.

Идея состоит в том, что я рисую svg на клиенте, используя d3.js, и мне нужно преобразовать его в png.

Я попытался использовать javascript root и написать svg на холсте, а затем преобразовать его в DataUrl, но IE имеет проблемы с этим на всех версиях, поэтому это не жизнеспособный вариант.

Я искал в Интернете немного, и все, что я мог найти, это Inkscape.

Это не является жизнеспособным решением для меня из-за ограниченного доступа на сервере, и, честно говоря, я не думаю, что это хорошая идея для установки всего приложения для простой функциональности.

Есть ли еще какое-нибудь решение, которое может взять исходный код svg с кодом 64 и вернуть png, который может отображаться в изображении?

  • 0
    Ссылка это какой-либо помощи?
Теги:
svg
png

2 ответа

0

Я обнаружил, что, поскольку я должен поддерживать IE 11, я вместо этого пошел с canvas к blob в PNG, используя "canvas-toBlob.js" и "FileSaver.js",

$("#save-btn").click(function() 
{
    $("#myChart").get(0).toBlob(function(blob) 
    {
        saveAs(blob, "chart_1.png");
    });
});

https://jsfiddle.net/mfvmoy64/155

0

Я столкнулся с той же проблемой, однако мне удалось отобразить SVG в изображение, чтобы ваши пользователи могли щелкнуть правой кнопкой мыши, чтобы загрузить изображение или щелкнуть правой кнопкой мыши на холсте. Существует также Canvg, у которого есть библиотека, которая, как представляется, работает с IE, однако она не является точной для сложного SVG и поэтому не отвечает моим потребностям. Возможно, это поможет вам.

У меня есть код в моем вопросе, который будет работать в IE, просто используйте IMG или объект Canvas, вам не нужно вызывать toDataURI.

Оформить заказ Canvg, это может помочь.

Удачи! Если вы найдете лучшее решение, сообщите мне. :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню