Actionscript 中的灰度和 Alpha 蒙版

发布于 2024-11-19 01:34:40 字数 575 浏览 2 评论 0原文

我想制作一个蒙版,将任何颜色转换为灰度,然后降低它们的 alpha 值。预期目的是使遮蔽区域呈灰度且更亮,从而使未遮蔽区域更加突出。我见过的大多数有关 alpha 值蒙版的教程都过于复杂并且使用 Flash GUI。如何在 ActionScript 中完成同样的事情?

更新:这是带图片的说明...

如果以下是我的图像:

在此处输入图像描述

然后,对某些选择进行传统遮罩将产生以下结果:

在此处输入图像描述

相反,那些被遮罩的部分完全地,我希望那些是转换为灰度:

在此处输入图像描述

并且它们的 alpha 值降低,因此变亮:

在此处输入图像描述

I would like to make a mask that both converts any colors to grayscale and then reduces their alpha value. The intended purpose is for the masked region to be in grayscale and lighter so that the unmasked region is more prominent. Most tutorials I've seen for alpha value masks are far too complicated and use the Flash GUI. How do you accomplish the same thing in ActionScript?

Update: Here's an explanation with pictures...

If the following is my image:

enter image description here

Then a traditional mask over some selection would produce the following:

enter image description here

Instead, those parts that are masked out completely, I would like for those to be converted to grayscale:

enter image description here

And their alpha value decreased, so they're lightened:

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暖心男生 2024-11-26 01:34:40

我的建议:

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

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

My recommendation :

  1. Create an instance of Sprite / Movieclip you want to mask over as a BitmapData object
  2. Create a Mask instance that you apply to the Sprite Movieclip
  3. Create a duplicate instance of the sprite / movieclip original that's of type BitmapData class. You duplicate this using copyPixels method and making sure it's the same width + height.
  4. Create a 3rd instance of the original, this time with an alpha property applied to it, but it's visible property set to "none".
  5. On the duplicate (2nd) instance, you can include this 3rd instance as a source for the alpha properties in the copyPixels arguments
  6. Apply a ColorMatrixFilter to the 2nd instance to achieve your grayscale. It also accepts an alpha property if you don't want to use step 5 but your example looks like the alpha isn't the same everywhere, hence requiring the 3rd instance

I hope this helps. And if you're still not sure, just watch Primer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文