iOS和Android算法或库用于羽化图像的边缘,类似于photoshop的

Jan*_*ski 6 algorithm android image-processing ios

我正在寻找iOS和Android库(最好)或算法,它可以帮助我像在Photoshop中处理它的方式一样羽化图像的边缘.下图显示了算法的预期效果.我不感兴趣羽化图像的边界,只是alpha边缘.我一直在寻找能够在没有运气的情况下完成它几天的算法.任何帮助将不胜感激.

羽毛图像

dfe*_*ens 6

假设你有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
Run Code Online (Sandbox Code Playgroud)

radius = 2的示例结果

当然这是一个相当概念的程序,有很多地方可以记忆和调整这个脚本但是它应该能够清晰地展现出大局

在此输入图像描述