如何使用 fabricjs 将多个图像添加到 canvas
How to add multiple image to canvas using fabricjs
我已经阅读了几本关于这个主题的 questions/answers,但我似乎找不到我的解决方案。很抱歉,如果你们发现这个问题重复了。
这是我的情况;
假设我有一个菜单供用户单击它,它将在 canvas 上显示所选项目的图像,用户也可以根据需要 resize/drag/drop 该图像。现在我可以用这段代码让它只工作一次
addAction(selectedAction: any) {
var canvas = new fabric.Canvas('c');
var imgObj = new Image();
imgObj.src = selectedAction.image;
imgObj.onload = function() {
var imgInstance = new fabric.Image(imgObj, {
left: 200,
top: 200,
});
canvas.add(imgInstance);
}
问题是当用户单击菜单中的另一个项目时,canvas 上的前一个项目消失,而当前项目显示在 canvas 上。但是如果我点击那张图片,它就会消失,之前的图片会显示在 canvas.
我希望他们同时留在 canvas 上。请指教
真正的快速回答:http://jsfiddle.net/8yf15nqp/1/。
var canvas = ...// setup canvas
function addImage (url) {
fabric.Image.fromURL(url, function (img) {
// deal with image
canvas.add(img);
});
}
设置一个函数来处理添加,然后在您要添加新图像时调用它。我假设您希望将 url 传递给函数并执行其他操作,但这是一个精简的示例。
我已经阅读了几本关于这个主题的 questions/answers,但我似乎找不到我的解决方案。很抱歉,如果你们发现这个问题重复了。
这是我的情况; 假设我有一个菜单供用户单击它,它将在 canvas 上显示所选项目的图像,用户也可以根据需要 resize/drag/drop 该图像。现在我可以用这段代码让它只工作一次
addAction(selectedAction: any) {
var canvas = new fabric.Canvas('c');
var imgObj = new Image();
imgObj.src = selectedAction.image;
imgObj.onload = function() {
var imgInstance = new fabric.Image(imgObj, {
left: 200,
top: 200,
});
canvas.add(imgInstance);
}
问题是当用户单击菜单中的另一个项目时,canvas 上的前一个项目消失,而当前项目显示在 canvas 上。但是如果我点击那张图片,它就会消失,之前的图片会显示在 canvas.
我希望他们同时留在 canvas 上。请指教
真正的快速回答:http://jsfiddle.net/8yf15nqp/1/。
var canvas = ...// setup canvas
function addImage (url) {
fabric.Image.fromURL(url, function (img) {
// deal with image
canvas.add(img);
});
}
设置一个函数来处理添加,然后在您要添加新图像时调用它。我假设您希望将 url 传递给函数并执行其他操作,但这是一个精简的示例。