zoukankan      html  css  js  c++  java
  • iOS给UIimage添加圆角的两种方式

    众所周知,给图片添加圆角有CALayer的cornerRadius,

    比如:

    最直接的方法:

    imgView.layer.cornerRadius1=110;
     
    imgView.clipsToBounds = YES;
     
    这事离屏渲染 (off - screen - rendering), 是很消耗性能的;有很多公司面试的时候会问到,你怎么将图片设置圆角,如果你
     
    只回答了这个方法,那么很遗憾,没有加分。
     
    下面我介绍一种更好的方法:
     
    #import "Bys.h"

    @implementation Bys

    -(UIImage*)imageWithCornerRadius:(CGFloat)radius{
        
        CGRect rect = (CGRect){0.f,0.f,self.size};
        
        // void UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);
        //size——同UIGraphicsBeginImageContext,参数size为新创建的位图上下文的大小
        //    opaque—透明开关,如果图形完全不用透明,设置为YES以优化位图的存储。
        //    scale—–缩放因子
        UIGraphicsBeginImageContextWithOptions(self.size, NO, [UIScreen mainScreen].scale);
        
        //根据矩形画带圆角的曲线
        CGContextAddPath(UIGraphicsGetCurrentContext(), [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:radius].CGPath);
        
        [self drawInRect:rect];
        
        //图片缩放,是非线程安全的
        UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
        
        //关闭上下文
        UIGraphicsEndImageContext();
      
        return image;
    }

    给UIImage添加生成圆角图片的扩展API: 这是on-screen-rendering

     



     

  • 相关阅读:
    Java正则表达式匹配例子
    python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
    pure-Python PDF library
    搭建nginx反向代理用做内网域名转发
    ASCII、Unicode、UTF-8 字符串和编码
    pdftk
    SQL中distinct 和 row_number() over() 的区别及用法
    使用Python进行AES加密和解密
    python中zip()函数的用法
    查找只出现一次的字符和位置
  • 原文地址:https://www.cnblogs.com/hlgbys/p/5492217.html
Copyright © 2011-2022 走看看