美文网首页图文/图像处理
ios系统滤镜可视化

ios系统滤镜可视化

作者: 逃之不桃 | 来源:发表于2019-06-27 18:48 被阅读0次

    首先为什么要做这个东西,我们都知道CIFilter的基本用法根据名字初始化一个CIFilter对象,然后blabla设置一堆属性,设置输入图片,然后就可以去获取输出的图像了,那这里就有一个问题了,设计根据原图自己设计出来了一种滤镜效果要你实现,并没有告诉你rgb如何变化,饱和度,透明度等怎么变化,这是你该怎么做呢?去浩瀚的ios滤镜中一个一个尝试?问题是大部分的滤镜都是需要给出参数的,有CIVector,CIColor,NSNumber等等,范围如此之大,该如何着手呢,着实让人蛋疼不已,为解决此问题,对滤镜进行可视化.

    达到的效果:
    新增一种滤镜可视效果,只需要在json中增加配置如下:

    {
            "filterName":"CIColorPolynomial",
            "attributes":[
                {
                    "name": "inputRedCoefficients",
                    "type": "CIVector",
                    "defaultValues": [0,1,0,0],
                    "max":[1,5,2,2],
                    "min":[-1,-5,-2,-2]
                },
                {
                    "name": "inputGreenCoefficients",
                    "type": "CIVector",
                    "defaultValues": [0,1,0,0],
                    "max":[1,5,2,2],
                    "min":[-1,-5,-2,-2]
                },
                {
                    "name": "inputBlueCoefficients",
                    "type": "CIVector",
                    "defaultValues": [0,1,0,0],
                    "max":[1,5,2,2],
                    "min":[-1,-5,-2,-2]
                },
                {
                    "name": "inputAlphaCoefficients",
                    "type": "CIVector",
                    "defaultValues": [0,1,0,0],
                    "max":[1,2,2,2],
                    "min":[-1,-2,-2,-2]
                }
            ]
        }
    

    指定filterName及该滤镜对应参数的信息,参数信息需要指定参数范围,参数类型,参数默认值,参数名,提供这些信息后,就可以直接查看实际效果了,不需要参数的滤镜,将attributes配成空数组就可以了

    IMG_8786.PNG
    IMG_8787.PNG
    点击左边图片可选择想要实现的效果图片,便于与右边生成的图片进行对比,效果支持滤镜叠加,重新开始尝试时一定要点击重置按钮.
    增加滤镜效果请编辑filter.json
    查看滤镜对应参数:
    https://developer.apple.com/library/archive/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/filter/ci/CIBoxBlur
    参数支持类型:NSNumber,CIVector,CIColor,CIImage(指定图片名,并将图片拖入工程)
    点击左上角参数按钮能实时查看当前合成的图片使用的滤镜及参数

    Demo地址:https://github.com/taozaizai/VisualFilter.git

    相关文章

      网友评论

        本文标题:ios系统滤镜可视化

        本文链接:https://www.haomeiwen.com/subject/rgcdcctx.html