【发布时间】:2021-04-26 07:28:12
【问题描述】:
我需要从具有 Alpha 通道的 image.Image 类型的对象中投射阴影。目标不是让矩形阴影,而是 alpha。
我想做的是:
- 取出 Alpha 通道
- 将其转换为黑色 RGB 图像
- 扩展到 N 个像素(N=模糊的大小)
- 应用高斯模糊
- 将其应用为背景
最后一点非常简单,这要归功于“image/draw”API(例如,我可以将图像切割成圆形并应用蒙版)。
输出 alpha 通道似乎也很简单(对于每个像素,在 R、G 和 B 上应用 255*alpha 乘法,或者使用灰度图像,最后将白色反转为黑色)
这显然是我有问题的膨胀和模糊。
我不反对这个操作的图像改变大小(最坏的情况下我会在转换之前缩小原始图像)
问题是“如何在image.Image 上使用 Go 扩大和模糊 alpha 通道”?
【问题讨论】:
-
我认为这可能有助于减少/重新关注您需要解决的具体问题。目前,您的大部分问题都在解释您不需要需要帮助的细节,而您确实需要帮助的部分还不是很清楚(至少对我来说)。例如,我不确定您所说的“扩展到 N 个像素”和“膨胀”具体是什么意思。
-
@HymnsForDisco N 是阴影的大小,因为 alpha 通道会粘在遮罩上,所以我猜需要扩大 alpha。我编辑了我的问题。唯一需要的是使用
image.Image有一个轨道来扩大和模糊一个 alpha 通道