我正在尝试创建一个函数,将用户剪贴板中的图像粘贴到画布上作为
新的fabric.Image()
。我找到的任何搜索结果都描述了克隆已在画布上的对象或粘贴IText数据。这个SO问题与我所问的相关,但它已经4年了,顶部答案中的函数不起作用:
如何使用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);
这里有一个示例,可以看到它的运行情况(或者说不运行)。这最终将成为Photoshop插件的一部分,所以我只需要担心它在Chrome中是否能正常工作。
fabric.Image.fromURL(img.src, { /*function stuff*/}, imgAttrs);
将 imgAttrs 添加回来了。所以,这很容易解决了,并且这解决了我一直困扰的部分。谢谢! - NikkiBdraws