美文网首页
iOS 毛玻璃效果(Mosaic)

iOS 毛玻璃效果(Mosaic)

作者: 前行的骆驼 | 来源:发表于2022-08-17 11:11 被阅读0次

    模糊效果(毛玻璃):对效果视图做了一个模糊的效果,即在目标视图上添加一个模糊视图.

    方法一 系统方法,这种方法有一定的局限性,不能设置毛玻璃的层次,效果,且在某些手机贴膜下会出现毛玻璃失效的情况

    UIVisualEffect:在ios8之后,系统用于添加页面效果的类,本身是一个抽象类,必须使用它的子类.它的子类有:UIBlurEffect:模糊效果;UIVibrancyEffect :明亮效果.

    UIVisualEffectView:用于展示特殊页面效果的视图

    方法二 使用系统的CoreImage框架绘制一张图片

    UIImage * image = 原始图片;

    CIContext * context  = [CIContext contextWithOptions:nil];//创建绘制空间

    CIImage * sourceImage = [CIImage imageWithCGImage:image.CGImage];//将图片转换成CIImage

    ///图片仿射滤镜

    CIFilter * clamp = [CIFilter filterWithName:@"CIAffineClamp"];//设置绘制类型

    [clamp setValue:sourceImage forKey:kCIInputImageKey];//设置要绘制的图片

    CIImage *clampResult = [clamp valueForKey:kCIOutputImageKey];

    ///高斯模糊滤镜

    CIFilter* gaussianBlur  = [CIFilter filterWithName:@"CIGaussianBlur"];

    [gaussianBlur setValue:clampResult forKey:kCIInputImageKey];

    [gaussianBlur setValue:[NSNumber numberWithFloat:50]  forKey:@"inputRadius"];//设置模糊值

    CIImage * gaussianBlurResult = [gaussianBlur valueForKey:kCIOutputImageKey];

    ///转化获取图片

    CGImageRef cgImage = [context createCGImage:gaussianBlurResult fromRect:[sourceImage extent]];

    UIImage * resultImage =  [UIImage imageWithCGImage:cgImage];

    相关文章

      网友评论

          本文标题:iOS 毛玻璃效果(Mosaic)

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