博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS 图片模糊处理 ------ 直接代码 复制出去就可用 值得标记
阅读量:4568 次
发布时间:2019-06-08

本文共 2145 字,大约阅读时间需要 7 分钟。

  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];

 

    

转载于:https://www.cnblogs.com/paocai2015/p/5410466.html

你可能感兴趣的文章
ANDROID_HOME on Mac OS X
查看>>
Real-Time Many-Light Management and Shadows with Clustered Shading
查看>>
.net代码修改webconfig
查看>>
1084 - Winter
查看>>
数组-join()
查看>>
NSX高级路由架构
查看>>
Unity中保存和读取数据的类---PlayerPrefs
查看>>
把jQuery的类、插件封装成seajs的模块的方法
查看>>
Netty入门
查看>>
MySQL主从同步和读写分离的配置
查看>>
卷积可视化,图像理解,deepdream,风格迁移
查看>>
docker网络
查看>>
超哥带你学GIT
查看>>
复制控制(上)
查看>>
016交叉工具链
查看>>
再论EM算法的收敛性和K-Means的收敛性
查看>>
每日站立会议 4-12(张硕编写)
查看>>
小程序 web 端实时运行工具
查看>>
相同的树
查看>>
Extjs combobox
查看>>