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

     



     

  • 相关阅读:
    hdu6315 Naive Operations
    noi.ac #525 神树的权值
    JSOI2018 潜入行动
    GXOI/GZOI2019 旅行者
    Educational Codeforces Round #67
    [六省联考2017] 分手是祝愿
    NOI2014 随机数生成器
    NOI2012 随机数生成器
    USACO19JAN Redistricting
    HNOI2015 菜肴制作
  • 原文地址:https://www.cnblogs.com/hlgbys/p/5492217.html
Copyright © 2011-2022 走看看