我正在HTML5 canvas
使用Fabric.js
创建一个图像拼贴应用程序。我希望用户可以将文件拖放到“文件拖放区域”,也可以从本地磁盘“选择文件”。请帮我实现这个。
我正在使用此代码添加多个图像。现在,我想将本地磁盘中的图像添加到Canvas。
//Image 1
fabric.Image.fromURL('/3.jpg', function (img) {
var oImg = img.set({ left: 300, top: 300, angle: -15 }).scale(0.9);
canvas.add(oImg).renderAll();
canvas.setActiveObject(oImg);
});
//Image 2
fabric.Image.fromURL('/bokeh.jpg', function (img) {
var oImg = img.set({ left: 300, top: 300, angle: -15 }).scale(0.9);
canvas.add(oImg).renderAll();
canvas.setActiveObject(oImg);
});
答案 0 :(得分:5)
嘿我有拖放解决方案并选择文件,但实际上我没有一个答案,我有两个不同的独立解决方案 拖放: http://jsfiddle.net/rodrigopandini/gj7HT/
选择文件:
<input type="file" id="imgLoader">
<canvas id="c" width="300" height="300"></canvas>
<script src="https://raw.github.com/kangax/fabric.js/master/dist/all.js"> </script>
<script type="text/javascript>
canvas = new fabric.Canvas('c');
document.getElementById('imgLoader').onchange = function handleImage(e) {
var reader = new FileReader();
reader.onload = function (event) { console.log('fdsf');
var imgObj = new Image();
imgObj.src = event.target.result;
imgObj.onload = function () {
// start fabricJS stuff
var image = new fabric.Image(imgObj);
image.set({
left: 250,
top: 250,
angle: 20,
padding: 10,
cornersize: 10
});
//image.scale(getRandomNum(0.1, 0.25)).setCoords();
canvas.add(image);
// end fabricJS stuff
}
}
reader.readAsDataURL(e.target.files[0]);
}
</script>
你可以在一个脚本中尝试这些代码。