繁体   English   中英

如何使用CIFilter作为链接下的图像创建失真效果

[英]How to create distortion effect using CIFilter as the images under link

我希望使用核心图像滤镜将效果添加到我的应用程序(Live Filtering Recorder App)中。 这种效果需要显示出失真线,就像旧的录音机一样。 我尝试通过加载图像帧并将其作为叠加层应用到滤镜图像的输出来进行尝试,但这会给录制造成延迟。 因此,我现在不希望通过CIFILTERS产生这种效果。

像变形线一样的录音机

谢谢。

这看起来像是自定义内核的工作。

您可以使用CIRandomGenerator生成一个随机噪声场,然后使用一些自定义的Core Image Kernel Language将其合成为原始条纹图像,并使用sin控制间隔。 通过smoothstep传递垂直位置的smoothstep会产生很好的效果。

您的内核应类似于:

    let kernel = CIColorKernel(string:
        "kernel vec4 vhsNoise(__sample image, __sample noise, float time, float spacing, float stripeHeight, float backgroundNoise)" +
            "{" +
            "   vec2 uv = destCoord();" +

            "   float stripe = smoothstep(1.0 - stripeHeight, 1.0, sin((time + uv.y) / spacing)); " +

            "   return image + (noise * noise * stripe) + (noise * backgroundNoise);" +
        "}"
        )!

我实际上已经编写了一个CIFilter来做到这一点,您可以在这里找到

西蒙

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM