我试图实施一个涂抹工具,就像你会在GIMP或Photoshop中找到的一样。我尝试过很多变化,但都有问题。我尝试过在图像上从位置P1到位置P2的模糊的基本方法是:涂抹工具算法?
- 从P1复制当前画笔大小的矩形。
- 在低透明度的P2上画这个矩形。
它看起来很好,如预期的污迹,但我遇到的主要问题是,污迹似乎使事情变得更暗。特别是使用小刷子间距时,重复的污迹会将该区域变成黑色。任何关于我在做什么错误的建议或我可以看到的一些标准算法?我看了一下Gimp的来源,但很难跟踪。
如果很重要,我正在使用移动设备(Android,Java),所以快速更好。
感谢您的提示。您能否提出在将污迹图像重新混合到目标图像上时我可以做些什么,使其不会变黑?我实际上已经阅读过几篇教程(这是我能找到的唯一一本!),我看不出他对我的做法有什么不同。他没有提到混合模式。有任何想法吗? – RichardNewton 2010-10-24 16:00:18
我从事计算机图形学工作已经有相当长的一段时间了,但是在这里。从我所知道的情况来看,这个问题是由于你的不透明性引起的。你是如何真正执行这部分变换的?如果我们将这些价值观念推向极致,那么就有几种不同的可能性。例如,蓝色和自身的平均值应该总是会让你变成蓝色,就像固体块被弄脏了一样。现在,如果将蓝色拖入红色会发生什么情况?理论上,你应该得到紫色。重复的污迹应该给你更均匀的紫色,直到你达到0xFF00FF。 – phobos51594 2010-10-24 18:27:20
感谢您的回复。我所做的只是使用标准绘制位图程序(从而将位图从前一位置绘制到新位置,并将alpha设置为X百分比)(因此位图将显示在第一个稍微透明的上方)。蓝色变成红色确实会变成紫色。奇怪的是,我可以分别擦紫色,红色和蓝色,而且不会变暗。然而,摩擦紫色和蓝色重叠的位置会迅速产生黑色(紫色+红色不是这种情况),并且摩擦任何带有黑色的物体会迅速产生更多的黑色。 – RichardNewton 2010-10-25 01:31:53