首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3 photoshop笔刷

AS3 photoshop笔刷
EN

Stack Overflow用户
提问于 2010-09-01 18:04:36
回答 3查看 2K关注 0票数 0

我正在寻找一种方法来在ActionScript 3中构建一个类似photoshop的绘图工具,特别是我想在photoshop中构建类似画笔的东西。这样您就可以使用不同的PNG作为画笔。

我尝试过在photoshop中将画笔保存为透明的png,将其导入到我的AS3项目中,并使用鼠标移动事件,每次将鼠标移动到bitmapdata对象中时绘制png。但这看起来不像photoshop。下面是一个例子,首先是photoshop绘图,然后是as3绘图:

在photoshop中,它看起来非常平滑,但在as3中,你会看到丑陋的角落和颜色变化。有人知道解决方案吗?

thx,tux

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-01 21:11:08

更具体地说:您应该在每次触发mouseDown时创建一个临时位图。在这个选项上,画笔将被绘制为黑白-这将产生更平滑的结果,例如,当您使绘制的画笔在alpha中不满时。还有-这里你必须使用“行走”技术,正如grapefrukt所说的那样。

最后,一旦触发了mouseUp事件,您必须对位图重新着色(用于画笔颜色),如果需要,可以添加一些滤镜并将其绘制在主位图上。

票数 0
EN

Stack Overflow用户

发布于 2012-11-15 02:43:45

答案是Flash绘制具有预乘alpha透明度的bitmapData。Flash基本上通过将接近透明的像素舍入到另一个值来节省内存。除非你一遍又一遍地将图像堆叠在一起,否则人眼是看不到的。这会导致颜色的舍入误差,看起来几乎像笔刷烧焦的边缘。

正如其他人所指出的,你肯定需要在鼠标位置之间“移动”画笔,但这不会考虑到当你将图像堆叠在一起时发生的颜色偏移。

而是将画笔笔触绘制到透明位图中,并使用colorTransform方法将新图层着色为所选颜色。当鼠标向上移动时,将该透明层绘制到画布中。(不要忘记在不使用时删除多余的层!)

票数 3
EN

Stack Overflow用户

发布于 2010-09-01 20:27:51

这是因为Photshop“遍历”鼠标坐标和绘制的距离。因此,即使你在两点之间快速移动鼠标,你也会得到一条连贯的线。

每次鼠标更新你只绘制一次,所以如果鼠标移动得很快,你会得到斑点而不是线条。

您可以通过跟踪上次鼠标更新的位置来解决此问题,如果在额外的步骤中绘制之间的距离太远。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3616902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档