Мне нужно преобразовать svg, закодированный в base64, в png, а затем вернуть его клиенту, который будет отображаться.
Идея состоит в том, что я рисую svg на клиенте, используя d3.js, и мне нужно преобразовать его в png.
Я попытался использовать javascript root и написать svg на холсте, а затем преобразовать его в DataUrl, но IE имеет проблемы с этим на всех версиях, поэтому это не жизнеспособный вариант.
Я искал в Интернете немного, и все, что я мог найти, это Inkscape.
Это не является жизнеспособным решением для меня из-за ограниченного доступа на сервере, и, честно говоря, я не думаю, что это хорошая идея для установки всего приложения для простой функциональности.
Есть ли еще какое-нибудь решение, которое может взять исходный код svg с кодом 64 и вернуть png, который может отображаться в изображении?
Я обнаружил, что, поскольку я должен поддерживать 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");
});
});
Я столкнулся с той же проблемой, однако мне удалось отобразить SVG в изображение, чтобы ваши пользователи могли щелкнуть правой кнопкой мыши, чтобы загрузить изображение или щелкнуть правой кнопкой мыши на холсте. Существует также Canvg, у которого есть библиотека, которая, как представляется, работает с IE, однако она не является точной для сложного SVG и поэтому не отвечает моим потребностям. Возможно, это поможет вам.
У меня есть код в моем вопросе, который будет работать в IE, просто используйте IMG или объект Canvas, вам не нужно вызывать toDataURI.
Оформить заказ Canvg, это может помочь.
Удачи! Если вы найдете лучшее решение, сообщите мне. :-)