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

     



     

  • 相关阅读:
    赋值问题
    构造方法的作用
    this的使用
    三目运算符和形参的使用
    构造方法作用:给所有对象进行相同的初始化操作
    成员变量和局部变量
    相关开发的书籍名汇集
    html ---- web sql 例子
    让input表单输入框不记录输入过信息的方法
    css实现两端对齐的3种方法
  • 原文地址:https://www.cnblogs.com/hlgbys/p/5492217.html
Copyright © 2011-2022 走看看