zoukankan      html  css  js  c++  java
  • IOS 图片模糊处理 ------ 直接代码 复制出去就可用 值得标记

      1. 

        

        UIImage *imag = [UIImage imageNamed:@"img"];

         /* --------------------使用 coreImg  ---------------------------  */

     

        // CIImage

        CIImage *ciimg = [[CIImage alloc] initWithImage:imag];   

     

        // CIFilter

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

     

        // 可以输出设置的模糊的程度

        NSLog(@"%@",[blurFilter attributes]);

        

        // 根据上一步可以设置模糊程度

        [blurFilter setValue:@(50) forKey:@"inputRadius"];

        

        // 图片输入滤镜

        [blurFilter setValue:ciimg forKey:kCIInputImageKey];

        

        // 将推片输出

        CIImage *outPutImg = [blurFilter valueForKey:kCIOutputImageKey];

        

        // CIContext

        CIContext * context = [CIContext contextWithOptions:nil];

        

        // 获取CGImage句柄

        CGImageRef outImgRef = [context createCGImage:outPutImg fromRect:[outPutImg extent]];

        

        //  h获取到最后的图片

        UIImage *blurImg = [UIImage imageWithCGImage:outImgRef];

        

        // 释放句柄

        CGImageRelease(outImgRef);

        

        // 最后得到模糊的图片    blurImg

     

     

        第二种

        /* ___________________ UIImage+ImageEffects.h ________________________________ */

        UIImage *sourImg = [UIImage imageNamed:@"img"];

        

        UIImage *blurImg = [sourImg blurImageWithRadius:30];

     

     

    第三种                    UIVisualEffectView

     

     

     

       UIScrollView *sc = [[UIScrollView alloc] initWithFrame:self.view.bounds];

        UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 600, 500)];

        imgView.image = imag;

        [sc addSubview:imgView];

        sc.contentSize = imgView.bounds.size;

        [self.view addSubview:sc];

     

        UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight]];

        

        effectView.frame = CGRectMake(0, 200, 400, 200);

        [self.view addSubview:effectView];

        

        

        

        UILabel *lable = [[UILabel alloc] initWithFrame:effectView.bounds];

        lable.text = @"模糊背景";

        lable.font = [UIFont systemFontOfSize:50];

        lable.textAlignment = NSTextAlignmentCenter;

        

        //  添加模糊的子effictView  使用的是  --  UIVibrancyEffect  且需要和父类保持一致

        UIVisualEffectView *subEffectView = [[UIVisualEffectView alloc] initWithEffect:[UIVibrancyEffect effectForBlurEffect:(UIBlurEffect *)effectView.effect]];

        

        subEffectView.frame = effectView.bounds;

        // 将子模糊View 添加到EffectView contenctView 才能有效果

        

        [effectView.contentView addSubview:subEffectView];

        

        [subEffectView.contentView addSubview:lable];

     

        

  • 相关阅读:
    [C#性能简析]泛型集合的使用
    理解自定义特性(Attribute)
    C语言第1次作业2.0版
    C语言第3次作业
    C语言第1次作业
    C语言第2次作业
    kubernetes 部署metricserver
    安装nginx
    C# Winform应用程序内存回收
    asp.net 数据库访问操作类
  • 原文地址:https://www.cnblogs.com/paocai2015/p/5410466.html
Copyright © 2011-2022 走看看