我需要在图像周围放置一个alpha混合渐变边框。我的问题是混合角落,使它们在水平和垂直渐变相遇的地方是平滑的。我相信有一种标准算法可以解决这个问题。我想我甚至多年前在学校遇到过它。但是我在几次网络搜索中找不到任何引用都没有成功。
(我在角落里实施了一个径向填充图案,但转换仍然不够平滑。)
我的问题:
如果有标准算法 这个问题,名称是什么 它,甚至更好,它是怎么回事 实施
放弃任何标准算法, 什么是确定所需像素的最佳方法 产生平滑梯度的价值 在角落里? (顺利 从垂直过渡 渐变到水平 梯度。)
编辑:想象一下,我有一个图像,我将插入一个更大的图像。较大的图像为纯黑色,较小的图像为纯白色。在插入之前,我想通过在较小的图像上设置alpha值来将较小的图像混合到较大的图像中,以在其周围创建透明的“边框”,使其“淡化”为较大的图像。做得对,我应该有一个从黑到白的平滑渐变,除了角落和内边缘,我到处都是。
在靠近图像中心的渐变边框的边缘,值为255(不透明)。当边界接近外边缘时,α值接近0.在图像的角落中,其中Vert&水平边界相遇,你最终得到的是对角线。我想消除那条线并顺利过渡。
我需要的是一种算法,用于确定每个像素的alpha值(0 - 255),当水平和垂直边缘相交时,这些像素在图像的一角重叠。
答案 0 :(得分:2)
据推测,你将它们重叠的两个渐变相乘,对吗?
Dunno关于标准算法。但是如果你使用一个符号形状的渐变而不是一个线性渐变,那么应该消除两个重叠的可见边缘。
简单的sigmoid函数是smoothstep(t)= t t (3 - 2 * t)其中0 <= t <= 1
答案 1 :(得分:0)
如果您不需要它可以调整大小,那么您可以使用简单的alpha贴图。
然而,我曾经使用过一个简单的高斯渐变,其中的平均值位于我希望它成为最后一个完全不透明像素的位置。如果这是有道理的。