以编程方式绘制(投影)阴影

发布于 2024-11-25 10:37:50 字数 211 浏览 1 评论 0原文

这可能适用于所有编程语言。

我使用 Adob​​e Flash AS3,由于本文中的某些原因,我无法使用内置的阴影滤镜。

不过,我确实有可用的位图数据,以及颜色和 Alpha 值。

所以应该有一种方法来绘制我自己的阴影过滤器......对吧?有什么好的现有算法我应该去检查一下吗?

不是专门寻找 AS3 实现,任何其他示例都可能允许我转换代码。

This probably goes for all programming languages.

I use Adobe Flash AS3 and for some reason that is boyond this post, I cannot use built-in dropshadow filters.

I do, however, have bitmap data available, with color and alpha values.

So there should be a way to draw my own dropshadow filter.... right? Any good existing algorithms I should go and check out?

Not specifically looking for an AS3 implementation, any other example will probably allow me to convert the code.

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

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

发布评论

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

评论(1

东走西顾 2024-12-02 10:37:50

通常,阴影是这样完成的:

  • 复制位图的 Alpha 通道
  • 模糊复制的 Alpha 通道(高斯模糊应该没问题)
  • 将复制的 Alpha 通道向下并向右移动
  • 使用复制的 Alpha 通道使背景变暗(即,乘以背景的 RGB 值由 alpha 通道的反值表示;这与将 alpha 通道与全黑位图组合并在背景上进行 alpha 混合相同)
  • 绘制原始位图(也使用阿尔法混合)

Usually, dropshadows are done like so:

  • copy your bitmap's alpha channel
  • blur the copied alpha channel (a gaussian blur should be fine)
  • move the copied alpha channel down and to the right
  • use the copied alpha channel to darken the background (that is, multiply the background's RGB values by the inverse value from the alpha channel; this is the same as combining the alpha channel with an all-black bitmap and alpha-blending that over the background)
  • draw the original bitmap (also using alpha-blending)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文