【问题标题】:Making images draggable to HTML5 Canvas, moving images out of canvas使图像可拖动到 HTML5 Canvas,将图像移出画布
【发布时间】:2014-01-10 14:18:29
【问题描述】:

我正在尝试制作一个自定义头像制作器,我的用户可以在其中将图像拖放到他们想要的位置(衣服等。我根据他们拥有的内容从数据库中获取图像 URL)。然后他们可以将外观保存为 png 图像到我的网站(使用 php)。我对 javascript/jquery 没有经验,但我认为没有它们是不可能的。所以我从这里找到了很棒的代码:

http://www.fabiobiondi.com/blog/2012/10/export-and-save-a-screenshot-of-an-html5-canvas-using-php-jquery-and-easeljs/

但是图像已经在画布中并且不能超出它,考虑到有人可能有 100 件衣服并且不想全部显示它们,这很糟糕。此外,我必须为每件作品制作自定义代码,这也很糟糕,因为并非所有用户都有相同的图像要拖动。

有没有办法让所有图像都可拖动(到画布上),这样我就可以轻松地将数据库中的图像 url 添加为基本的 html/css?图像是否有可能首先出现在画布之外?还是应该为用户不想要的项目创建另一个画布?

【问题讨论】:

  • 嗯...听起来更像是一个设计决策,而不是一个编码问题。我想您可以为服装选项创建 html 有序图像列表。用户从衬衫列表中选择 1 个,从裤子列表中选择 1 个,等等。然后您只在画布上为用户添加选定的图像。如果用户改变主意并从有序列表中选择不同的衬衫,则从画布中删除先前的衬衫图像并添加新选择的衬衫。是的,easeljs 是通过 javascript 控制的,因此您需要“学习”js 编码。祝你的项目好运!

标签: javascript php jquery html canvas


【解决方案1】:

本文中的脚本使用静态图像,因为它的目的只是解释如何将画布导出为位图:)

我写了另一篇小文章,描述了如何将 N 个图像从硬盘上传到画布(使用 CreateJS),这样您就可以看到加载动态源的过程并不难。

http://www.fabiobiondi.com/blog/2012/10/upload-images-from-the-user-hard-driveto-an-html5-canvas-easel-js-application/

无论如何,如果您需要将图像加载到画布中,您可以简单地使用如下语法:

var img = new createjs.Bitmap('http://uri/image.jpg')
img.x = 50;
img.y = 50;
stage.addChild(img)
stage.update();

如果您需要知道图像何时完全加载,您应该监听 onload 事件:

var image = new Image();
image.onload = onImageLoaded;
image.src = "http://uri/image.jpg";

function onImageLoaded (event) {
  var img = new createjs.Bitmap(event.target)
  img.x = 50;
  img.y = 50;
  stage.addChild(img)
  stage.update();
}

希望有用

【讨论】:

  • 感谢,当我在这里和那里添加几段代码时,它完全按照我想要的方式工作了(:这并不像我最初想象的那么难!
  • 事实上!很高兴帮助:)
猜你喜欢
  • 1970-01-01
  • 2012-08-16
  • 2013-12-09
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 2011-08-13
  • 1970-01-01
  • 2014-12-05
相关资源
最近更新 更多