我想同时使用 caman js 和 fabric js 来使图像生效。我试图合并代码,但它给出了两张图片而不是一张。我能做些什么来结合caman js和fabric js并解决这个问题?我参考了:http ://camanjs.com/和http://fabricjs.com/articles/ 谢谢。
问问题
1740 次
1 回答
8
我认为没有直接的方法可以将面料和卡曼结合起来。这是我使用的一种解决方法(只是一个简单的解决方法。您可以根据自己的意愿对其进行增强):
HTML
<canvas id="canvas" width="600" height="300"></canvas>
Javascript
var canvas = new fabric.Canvas('canvas');
fabric.Image.fromURL('image.png', function(img) {
img.set({
left: 10,
top: 50
});
canvas.add(img).setActiveObject(img);
canvas.renderAll();
var hiddenImg = document.createElement('img');
hiddenImg.src = canvas.getActiveObject().toDataURL();
hiddenImg.id = 'target';
hiddenImg.style.display = 'none';
document.body.appendChild(hiddenImg);
Caman('#target', function(value) {
this.brightness(10);
this.contrast(20);
this.render(function() {
canvas.getActiveObject().setSrc(document.getElementById('target').toDataURL(), function() {
canvas.renderAll();
});
});
});
});
这是小提琴:http: //jsfiddle.net/k7moorthi/dfp1b0mq/
注意:如果要使用外部图像以避免浏览器对 toDataURL() 方法的安全性阻塞,请将 crossOrigin 选项设置为 fabric.Image.fromURL() 方法。例如:
fabric.Image.fromURL('https://s3-eu-west-1.amazonaws.com/kienzle.dev.cors/img/image2.png', function(img) {
...
}, { crossOrigin: 'anonymous' });
于 2015-09-26T20:12:16.603 回答