KineticJS:如何在IOS上导出带有SVG图像的舞台? [英] KineticJS: How can I export a Stage with an SVG Image on IOS?

查看:149
本文介绍了KineticJS:如何在IOS上导出带有SVG图像的舞台?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用KineticJS我在顶部创建了一个带有jpg图像和svg图像的舞台。然后我试着导出舞台。它在桌面上运行良好,但在IOS上运行不正常。
我创建了一个JSFiddle来演示这个问题 http://jsfiddle.net/confile/p6Eey/

Using KineticJS I created a stage with a jpg image and an svg image on top. Then I tried to export the stage. It works fine on desktop but not on IOS. I created a JSFiddle to demonstrate this problem 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图像的舞台?

推荐答案

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

Drawing svg to canvas is bad idea. Look there: https://stackoverflow.com/a/5505861/512042 As workarond you may:

1将图像转换为png。

1 Convert image to png.

2使用 Kinetic.Path

这篇关于KineticJS:如何在IOS上导出带有SVG图像的舞台?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆