小编san*_*tes的帖子

在FabricJS中,更改图像元素的src会更改该对象的所有属性

在Fabric.js画布中,我试图将图像对象的src替换为高分辨率图像,以便在canvas.toDataURLWithMultiplier使用时保持图像质量.

当我更改图像对象的src时,它的所有属性也会改变.图像对象自动缩放到不同的大小,并且所有状态属性都会更改.

这发生在0.9.15版本中.当我使用0.8.32版本时,它的工作原理.版本0.8.32没有此问题.

这是代码:

<body>
    <button id="click" onclick="changeImage()">Change Image</button>

    <canvas id="canvas" width="300px" height="300px" style="border:2px solid #000;">
<script>

    canvas = new fabric.Canvas('canvas');
    fabric.Image.fromURL("http://timeplusq.com/dakshin/clip03.png", function(obj) {

    canvas.add(obj.scale(1).rotate(-15).set({ 
        left: 80, top: 95 
    }));

    });

    function changeImage(){
     var tmp=canvas.item(0).getElement();
     var src = tmp.src;      

     tmp.setAttribute("src", 'http://timeplusq.com/dakshin/clip03original.png'); 

    //Its a 106KB size image

    canvas.renderAll();
    canvas.calcOffset();               
    }?

    </script>  
</body>
Run Code Online (Sandbox Code Playgroud)

我试图获取图像对象的初始状态属性,然后设置更改的图像对象的值.但它没有用.

任何解决这个问题的方法?

javascript canvas html5-canvas fabricjs

5
推荐指数
1
解决办法
7795
查看次数

标签 统计

canvas ×1

fabricjs ×1

html5-canvas ×1

javascript ×1