【发布时间】:2018-06-14 23:25:57
【问题描述】:
我正在尝试创建一个函数,将图像从用户剪贴板粘贴到画布上作为new fabric.Image()。我找到的任何搜索结果要么描述了画布上已有的克隆对象,要么描述了粘贴 IText 数据。这个 SO 问题与我要问的问题有关,但它已有 4 年历史,并且最佳答案中的功能不起作用:
How to do Copy and paste the image from User system to Canvas using fabric.js
这是我目前正在尝试使用的代码。我正在尝试设置一个稍后可以调用的粘贴功能:
var $wrapper = $('#content'),
canvas = new fabric.Canvas('canvas', {
width: 400,
height: 550
}),
pasteImage = function (e) {
var items=e.originalEvent.clipboardData.items;
e.preventDefault();
e.stopPropagation();
// Fabric.js image function
function canvasImage(url) {
var img = new fabric.Image(url);
img.scale(0.75).center().setCoords();
canvas.add(img).renderAll();
}
//Loop through files
for(var i=0;i<items.length;i++){
var file = items.items[i],
type = file.type;
if (type.indexOf("image")!=-1) {
var imageData = file.getAsFile();
var imageURL=window.webkitURL.createObjectURL(imageData);
canvasImage(imageURL);
}
}
};
$wrapper.on('paste', pasteImage);
Here's a fiddle 看到它在行动(或不行动,我猜)。这最终将成为 Photoshop 插件的一部分,所以幸运的是我只需要担心它在 Chrome 中的工作。
【问题讨论】:
标签: javascript jquery canvas fabricjs clipboard