【问题标题】:Grayscale and Alpha Mask in ActionscriptActionscript 中的灰度和 Alpha 蒙版
【发布时间】:2011-07-09 23:01:35
【问题描述】:

我想制作一个既能将任何颜色转换为灰度,又能降低其 alpha 值的蒙版。预期目的是使蒙版区域处于灰度和较亮状态,以便未蒙版区域更加突出。我见过的大多数关于 alpha 值掩码的教程都太复杂了,并且使用了 Flash GUI。你如何在 ActionScript 中完成同样的事情?

更新:这里有图片说明...

如果以下是我的图片:

然后在某些选择上使用传统蒙版会产生以下结果:

相反,那些被完全屏蔽的部分,我希望将它们转换为灰度:

而且它们的 alpha 值降低了,所以它们变亮了:

【问题讨论】:

  • 我真的不明白你想要做什么。 “通常用普通面具显示的部分”让我失望。你想在一张图片上使用 2 个蒙版吗?

标签: flash actionscript-3 masking


【解决方案1】:

我的建议:

  1. 创建一个您想要作为 BitmapData 对象遮罩的 Sprite/Movieclip 实例
  2. 创建一个应用于 Sprite 影片剪辑的 Mask 实例
  3. 创建一个类型为 BitmapData 类的 sprite/movieclip 原始实例的副本。您使用copyPixels 方法复制它,并确保它的宽度+高度相同。
  4. 创建原始实例的第三个实例,这一次应用了一个 alpha 属性,但它的可见属性设置为“无”。
  5. 在重复的(第 2 个)实例上,您可以将此第 3 个实例作为 alpha 属性的源包含在 copyPixels 参数中
  6. ColorMatrixFilter 应用于第二个实例以实现您的灰度。如果您不想使用 第 5 步,它也接受 alpha 属性,但您的示例看起来 alpha 在所有地方都不相同,因此需要第三个实例

我希望这会有所帮助。如果您仍然不确定,请观看 Primer。

【讨论】:

    猜你喜欢
    • 2017-06-27
    • 2011-07-03
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多