如何使用 EaselJS 在位图上绘制/绘制线条?

Posted

技术标签:

【中文标题】如何使用 EaselJS 在位图上绘制/绘制线条?【英文标题】:How do I draw/paint lines on top of a Bitmap using EaselJS? 【发布时间】:2014-04-11 04:38:57 【问题描述】:

我正在尝试使用 sample from the createJS/easelJS 站点,它设置了 createjs.Shape() 并将其作为子级添加到 createjs.stage()

然后使用 mousedown/mousemove/mouseup 处理程序,使用图形方法更新舞台 - setStrokeStylebeginStrokecurveTo

主要区别在于我还添加了 new Bitmap(url) 并将其作为孩子添加到我的舞台(在添加 createjs.Shape 用于绘图之前)。

但是,当我测试它时,我只能在位图未占用的区域上“绘制”。我怎样才能让它工作,这样我就可以在位图上绘制/绘画?

最终目标是一个着色页 - 能够添加不同的黑白图像并使用多种颜色画笔对其进行着色。

【问题讨论】:

【参考方案1】:

没关系,我通过从 Image 对象创建 new createjs.Bitmap 对象而不是将图像的 url 传递给 Bitmap 的构造函数来使其工作。然后将我的drawingCanvas 的createjs.Shape 对象和Bitmap 的对象都添加到加载的事件处理程序中。所以这行得通:

var image, stage, drawingCanvas, bitmap;
function init()
 image = new Image();
 image.onload = handleImgLoad();
 image.src = 'image-source-url.png';
 stage = new createjs.Stage("testCanvas");
 createjs.Touch.enable(stage);
 drawingCanvas = new createjs.Shape();


function handleImgLoad()
 bitmap = new createjs.Bitmap(image);
 stage.addChild(bitmap, drawingCanvas);

 ... code to handle mouseup/down/move events...

【讨论】:

以上是关于如何使用 EaselJS 在位图上绘制/绘制线条?的主要内容,如果未能解决你的问题,请参考以下文章

在位图上绘制对角线文本

在位图上绘制椭圆并返回带有椭圆的位图

c ++在位图上绘制图像并保存

在位图上绘制文本失败

Android 在位图上绘制文本

绘制在位图上以一定角度旋转的线