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

     



     

  • 相关阅读:
    ubuntu 11.10下 配置环境变量 对 adb无效
    一个NB的博客 个人感觉非常有用
    SVN 错误提交配置文件,
    代码格式真的很重要
    图解DB2体系结构(转)
    DB2基本概念——实例,数据库,模式,表空间
    DB2 数据库安全总述
    DB2关于标识列(自增列)的对比试验、使用示例
    DB2的SQL编程(转)
    DB2 数据类型(转)
  • 原文地址:https://www.cnblogs.com/hlgbys/p/5492217.html
Copyright © 2011-2022 走看看