我正在寻找iOS和Android库(最好)或算法,它可以帮助我像在Photoshop中处理它的方式一样羽化图像的边缘.下图显示了算法的预期效果.我不感兴趣羽化图像的边界,只是alpha边缘.我一直在寻找能够在没有运气的情况下完成它几天的算法.任何帮助将不胜感激.
解决方法:
假设你有alpha通道(比如带有透明背景的照片),似乎常规的紊乱模糊矩阵应该让你满意.
但是,您应该只通过ALPHA频道而不是通过RGB频道.
在这里检查模糊过滤器:
https://en.wikipedia.org/wiki/Kernel_%28image_processing%29
您对箱子模糊/高斯模糊感兴趣.但是为了使这种效果更加平滑 – 你应该使用更大尺寸的矩阵.
算法满足您需求的原因是,如果所有周围像素都有alpha 0 – 它仍然是0.如果255 – 它将保持255.只有alpha 0/255之间边界区域的像素才会受到影响.
编辑:
请检查这个小提琴(在ff中真的很慢):
http://jsfiddle.net/5L40ms65/
您可以在代码末尾查看算法.自实施以来我注意到:
– 如果所有neigbour像素都是255或0(alpha通道),则无需模糊
– 在其他情况下,还需要模糊RGB
一般来说:
RADIUS = 2 (makes total width of matrix = 5)
For x = 0..width
for y = 0..width
if all pixels in square of radius 2 are alpha = 0
do nothing
elsif all pixels in square have alpha = 255
do nothing
else
pixel[x][y].RGB = average RGB of adjacent pixels where alpha != 0
pixel[x][y].ALPHA = average ALPHA in square
radius = 2的示例结果
当然这是一个相当概念的程序,有很多地方可以记忆和调整这个脚本但是它应该能够清晰地展现出大局
原文地址:https://codeday.me/bug/20190516/1116985.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。