Image 使用基于alpha的Golang放置阴影
我需要从具有alpha通道的Image 使用基于alpha的Golang放置阴影,image,go,shadow,Image,Go,Shadow,我需要从具有alpha通道的image.image类型的对象上投射阴影。目标不是对矩形进行阴影处理,而是对alpha进行阴影处理 我想做的是: 取出阿尔法通道 将其转换为黑色RGB图像 扩展到N个像素(N=模糊的大小) 应用高斯模糊 将其作为背景应用 最后一点非常简单,这要归功于“image/draw”API(例如,我可以在圆圈中剪切图像并应用遮罩) 输出alpha通道似乎也很简单(对于每个像素,在R、G和B上应用255*alpha乘法,或者使用灰度图像,最后将白色反转为黑色) 很明显,我的
image.image
类型的对象上投射阴影。目标不是对矩形进行阴影处理,而是对alpha进行阴影处理
我想做的是:
- 取出阿尔法通道
- 将其转换为黑色RGB图像
- 扩展到N个像素(N=模糊的大小)
- 应用高斯模糊
- 将其作为背景应用
问题是“如何放大和模糊alpha通道”的图像。图像?好的,过了一会儿,我终于做到了 我重建alpha并将其设置为2(这将是一个参数) 我正在使用
github.com/dissection/imaging
包来模糊alpha
func DropShadow(img image.image,大小float64)image.image{
边界:=img.bounds()
sizeInt:=int(数学单元(大小))*4
final:=imaging.New(bounds.Dx()+sizeInt,bounds.Dy()+sizeInt,color.Alpha{})
对于x:=0;x
这只是有点奇怪,我需要缩放4的图像,以避免阴影粘在边界上。但它确实起到了作用……我认为将你的问题减少/重新聚焦到你需要解决的具体问题上可能会有所帮助。目前,你的大部分问题是解释你不需要帮助的细节,而你确实需要帮助的部分还不是很清楚(至少对我来说)。例如,我不确定你所说的“扩展到N个像素”和“扩展”是什么意思。@HymnsForDisco N是阴影的大小,因为alpha通道会粘附在遮罩上,所以我想alpha需要扩展。我编辑了我的问题。唯一需要做的就是用
image.image