Я работаю над веб-приложением, где пользователь может создавать проекты в Svg. Я хочу преобразовать проект svg в файл изображения png на стороне клиента. Я нашел решение использовать canvas, это хорошо работает в firefox, но в chrome он генерирует ошибку безопасности.Преобразование Svg в Png со стороны клиента
проверить код ниже спасибо: -
var mainsvg=document.getElementById('svgforImg');
var canvas=document.getElementById('canvas');
var ctx = canvas.getContext("2d");
var data=mainsvg.innerHTML;
var DOMURL = self.URL || self.webkitURL || self;
var svg = new Blob([data], {
type: "image/svg+xml;charset=utf-8"
});
var url = DOMURL.createObjectURL(svg);
var img = new Image();
img.onload = function() {
ctx.drawImage(img, 0, 0);
DOMURL.revokeObjectURL(url);
var imageurl = canvas.toDataURL("image/png");
}
Теперь моя переменная ImageUrl содержит изображение 'base64 PNG. это работает в Firefox. Но в хромированной линии
var imageurl = canvas.toDataURL("image/png");
произвести ошибку безопасности.
Любая помощь будет высоко оценена.
Возможный дубликат ["DOM Exception 18" с холста] (http://stackoverflow.com/questions/13829525/dom-exception-18-from-canvas) –
Значит, мне нужно перемещаться по серверной стороне чтобы получить изображение, преобразованное как для хрома, так и для firefox. – RashFlash
Да, возможно (если не требуется последняя версия версии хром). Если svg достаточно прост, вам может быть повезло, например, canvg - http://code.google.com/p/canvg/. –