iOS image设置图片圆角

合理的设置图片圆角能更高的提高APP的性能,在模拟器上,可以通过以下操作进行查看图片是否被及时渲染。模拟器打开APP之后,选择如下操作,以下性能优化中,有效的检测混合模式 Color Blended Layers拉伸图像 Color Misaligned Images,在开发中能够提成图像的性能

iOS image设置图片圆角_第1张图片
选择模拟器.png

Color Blended Layers

  • 这个选项基于渲染程度对屏幕中的混合区域进行绿到红的高亮(也就是多个半透明图层的叠加))

  • 由于重绘的原因,混合对GPU性能会有影响,同时也是滑动或者动画帧率下降的罪魁祸首之一
  • Color Misaligned Images

  • 会高亮的那些被缩放或者拉伸以及没有正确对齐到像素边界的图片(也就是非整型坐标))

  • 这些中的大多数通常会导致图片的不正常缩放,如果一张大图当做缩略图显示,或者不正确的模糊图像
  • Color Copied Images

  • 有时候 寄宿图片(layer.content) 的生成是由服务器CoreAnimation被强制生成一张图片,然后发送到渲染服务器,而不是简单的指向原始指针

  • 这个选项把这些图片渲染成蓝色

  • 复制图片对内存和CPU使用来说都是一项非常昂贵的操作,所以应该尽可能的避免
  • Color Offscreen-Rendered Yellow

  • 这里会把那些需要离屏渲染的图层高亮成换色

  • 这些图层很可能需要用shadowPath或者 shouldRasterize来优化
  • PNG 与 JPG图片的区别

    PNG:支持透明
    JPG:不支持透明

    常见的image设置圆角的方式

    [imageView.layer setCornerRadius:50];// 设置圆角半径
    imageView.clipsToBounds = YES;// 超出主层边框就要裁剪掉
    

    这种设置方法是最常见的一种圆角设置,对性能来说并不是最好的,可以选择使用绘图来设置图像。

    使用UIImageView分类设置圆角
    - (void)circleImage
    {
        CGRect rect = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
        /**
         >1. size:绘图尺寸
         >2. 不透明: NO 透明 / YES 不透明
         >3. scale:屏幕分辨率,默认生成的图像使用1.0的分辨率,图像质量不好
         可以指定0,会选择当前设备的屏幕分辨率
         */
        
        //1.开启图片图形上下文:注意设置透明度为非透明
        UIGraphicsBeginImageContextWithOptions(rect.size, YES, 0.0);
        
        //2设置圆角后,填充背景色
        [self.superview.backgroundColor setFill];
        UIRectFill(rect);
        
        //3.绘制圆裁切路线
        UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:rect];
        [path addClip];
        
        //4.绘制内切的圆形边框
        [[UIColor redColor] setStroke];
        [path  stroke];
        
        //5.绘制图片
        [self.image drawInRect:rect];
        
        //6.获取图片
        self.image = UIGraphicsGetImageFromCurrentImageContext();
        
        //7.关闭图形上下文
        UIGraphicsEndImageContext();
    }
    

    你可能感兴趣的:(iOS image设置图片圆角)