美文网首页iOS点点滴滴iOS 开发每天分享优质文章
iOS开发:利用CAGradientLayer实现图片融合。

iOS开发:利用CAGradientLayer实现图片融合。

作者: jlstmac | 来源:发表于2021-11-01 11:29 被阅读0次

    先上效果:将两张图片融合。
    两张原图:


    IMG_2312.JPG IMG_2313.JPG

    融合之后的图:


    IMG_1533.JPG

    原理如下:将两张图重合,同时,使得两张图重合部分透明度渐变。
    其中透明度渐变的实现就是设置UIImageView的layer的mask为一个CAGradientLayer。
    核心代码:

    CAGradientLayer* maskLayer = CAGradientLayer.new;
    maskLayer.frame = self.bounds;
    self.layer.mask = maskLayer;
    maskLayer.startPoint = CGPointMake(0, 0);
    maskLayer.endPoint = CGPointMake(0, 1);
    UIColor* colorAlpha0 = [[UIColor clearColor] colorWithAlphaComponent:0];
    UIColor* colorAlpha05 = [[UIColor clearColor] colorWithAlphaComponent:0.5];
    UIColor* colorAlpha1 = [[UIColor clearColor] colorWithAlphaComponent:1];
    NSArray* colors,*locations;
    colors = @[(__bridge id)colorAlpha1.CGColor,
                                       (__bridge id)colorAlpha1.CGColor,(__bridge id)colorAlpha05.CGColor];
        locations = @[@(0),@(1 - offest/relativeHeight), @(1)];
    //设置颜色数组
    maskLayer.colors = colors;
    //设置颜色分割点(区域渐变范围:0-1)
    maskLayer.locations = locations;
    

    上下两个UIImageView的重叠区域都需要设置CAGradientLayer。

    相关文章

      网友评论

        本文标题:iOS开发:利用CAGradientLayer实现图片融合。

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