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

     



     

  • 相关阅读:
    C51中的 xbyte的使用
    使用正则表达式替换日期格式
    C#制作windows窗体的图书管理系统
    《短码之美》读书笔记3
    VS2019创建第一个ASP.NET网站
    观影大数据分析(上)
    Git提交文件报错解决
    软件设计简单工厂模式
    记录一次MySQL启动异常的解决
    将本机web项目映射到公网访问
  • 原文地址:https://www.cnblogs.com/hlgbys/p/5492217.html
Copyright © 2011-2022 走看看