使用KineticJS我在顶部创建了一个带有jpg图像和svg图像的舞台。然后我试着导出舞台。它在桌面上运行正常但在IOS上运行不正常。 我创建了一个JSFiddle来演示这个问题http://jsfiddle.net/confile/p6Eey/
以下是代码:
<div id="container"></div>
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v5.1.0.min.js"></script>
var stage = new Kinetic.Stage({
container: 'container',
width: 1000,
height: 1000
});
var layer = new Kinetic.Layer();
stage.add(layer);
var bgImage = new Image();
bgImage.onload = function() {
var bgimg = new Kinetic.Image({
image: bgImage,
width: 1000,
height: 1000
});
layer.add(bgimg);
layer.draw();
var img=new Image();
img.onload = function () {
var image1 = new Kinetic.Image({
image: img,
x: 300,
y: 300
});
layer.add(image1);
layer.draw();
image1.scale({
x: 0.3,
y: 0.3
});
image1.rotate(45);
layer.draw();
stage.toDataURL({
mimeType: "image/jpeg",
quality: 1.0,
callback: function(image) {
alert("toDataURL");
// document.body.appendChild(image);
}
});
stage.toImage({
mimeType: "image/jpeg",
quality: 1.0,
callback: function(url) {
alert("toImage");
}
});
}
img.crossOrigin="anonymous";
img.src = "https://dl.dropboxusercontent.com/u/47067729/sandwich2.svg";
};
bgImage.crossOrigin="anonymous";
bgImage.src =
"https://dl.dropboxusercontent.com/u/47067729/Foto2.jpg";
如何在IOS上导出带有SVG图像的舞台?
答案 0 :(得分:0)
将svg绘制到画布是个坏主意。看那里:https://stackoverflow.com/a/5505861/512042 作为工作方式,您可以:
1将图像转换为png。
或
2使用Kinetic.Path