Html5 canvas 拖放,调整图像大小,然后在1个画布中绘制特征

Html5 canvas 拖放,调整图像大小,然后在1个画布中绘制特征,html5-canvas,Html5 Canvas,我正在开发一个应用程序,其中用户出现并看到一个空白区域(div或canvas或其他什么,下面我们称之为mycanvas)。现在他从外面(一个div)拖动一些图像,并将它们放到我的画布上。他还可以调整它们的大小。而且,他还可以用铅笔和带有擦除功能的颜色在我的画布上画东西。现在,根据我到目前为止的研究,我发现绘图部分是纯HTML5画布。所以,没问题。但我不确定他是否可以将图像从外部div/canvas拖放到mycanvas。请告诉我如何在单个区域中实现所有三个功能(从外部拖放、用铅笔绘制、调整图像大

我正在开发一个应用程序,其中用户出现并看到一个空白区域(div或canvas或其他什么,下面我们称之为mycanvas)。现在他从外面(一个div)拖动一些图像,并将它们放到我的画布上。他还可以调整它们的大小。而且,他还可以用铅笔和带有擦除功能的颜色在我的画布上画东西。现在,根据我到目前为止的研究,我发现绘图部分是纯HTML5画布。所以,没问题。但我不确定他是否可以将图像从外部div/canvas拖放到mycanvas。请告诉我如何在单个区域中实现所有三个功能(从外部拖放、用铅笔绘制、调整图像大小)

我已经通过Html5Canvas创建了一个在线dnd编辑器

我将首先创建一个循环

var loop = function(){
  // Operation Here
}

self.setInterval(loop, 1000/60);
创建数据模型,例如图像

var DndImage = function(x, y, width, height, image){
  this.type = "image";
  this.image = image;
  this.x = x;
  this.y = y;
  this.width = width;
  this.height = height;
}
然后我们在循环中绘制图像

var ObjectArray = new Array();
var WIDTH = 800;
var HEIGHT = 600;
var loop = function(){
  var canvas = document.getElementById("canvas");
  var context = canvas.getContext("2d");
  context.clearRect(0, 0, WIDTH, HEIGHT);
  for(var x = 0; x < ObjectArray.length; x++){
    if(ObjectArray[x].type == "image")
      context.drawImage(ObjectArray[x].image,ObjectArray[x].x,ObjectArray[x].y, ObjectArray[x].width, ObjectArray[x].height);
  }
}
现在如果你想做一个dnd,你需要做的是设置一个监听器来监听鼠标移动事件。并将DndImage对象x和y设置为跟随图像中的鼠标位置。您也可以缩放图像或更改大小

docuemnt.addEventListener("mousedown", function(){  });
docuemnt.addEventListener("mouseup", function(){  });
docuemnt.addEventListener("mousemove", function(){  });
docuemnt.addEventListener("click", function(){  });

希望我能帮助你:D

我已经通过Html5Canvas创建了一个在线dnd编辑器

我将首先创建一个循环

var loop = function(){
  // Operation Here
}

self.setInterval(loop, 1000/60);
创建数据模型,例如图像

var DndImage = function(x, y, width, height, image){
  this.type = "image";
  this.image = image;
  this.x = x;
  this.y = y;
  this.width = width;
  this.height = height;
}
然后我们在循环中绘制图像

var ObjectArray = new Array();
var WIDTH = 800;
var HEIGHT = 600;
var loop = function(){
  var canvas = document.getElementById("canvas");
  var context = canvas.getContext("2d");
  context.clearRect(0, 0, WIDTH, HEIGHT);
  for(var x = 0; x < ObjectArray.length; x++){
    if(ObjectArray[x].type == "image")
      context.drawImage(ObjectArray[x].image,ObjectArray[x].x,ObjectArray[x].y, ObjectArray[x].width, ObjectArray[x].height);
  }
}
现在如果你想做一个dnd,你需要做的是设置一个监听器来监听鼠标移动事件。并将DndImage对象x和y设置为跟随图像中的鼠标位置。您也可以缩放图像或更改大小

docuemnt.addEventListener("mousedown", function(){  });
docuemnt.addEventListener("mouseup", function(){  });
docuemnt.addEventListener("mousemove", function(){  });
docuemnt.addEventListener("click", function(){  });

希望我能帮助您:D

您可以使用Dynamic js实现所有必需的功能

拖放和调整大小的步骤

要使用不同的形状进行绘制,请说一条线:

从画布外往下掉可能是最简单的事情:


只需检查这些,并告诉我集成中是否存在任何问题。

您可以使用Dynamic js实现所有必需的功能

拖放和调整大小的步骤

要使用不同的形状进行绘制,请说一条线:

从画布外往下掉可能是最简单的事情:


只需检查这些问题,并让我知道在集成方面是否有任何问题。

我的情况与我发布的一个问题相同,你能帮我解决吗?我的情况与我发布的一个问题相同,你能帮我解决吗