KineticJS:如何在IOS上导出带有SVG图像的舞台?

时间:2014-05-20 23:43:11

标签: html html5 canvas svg kineticjs

使用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图像的舞台?

1 个答案:

答案 0 :(得分:0)

将svg绘制到画布是个坏主意。看那里:https://stackoverflow.com/a/5505861/512042 作为工作方式,您可以:

1将图像转换为png。

2使用Kinetic.Path