iOS image设置图片圆角

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

选择模拟器.png

Color Blended Layers

<li>这个选项基于渲染程度对屏幕中的混合区域进行绿到红的高亮(也就是多个半透明图层的叠加))</li>
<li>由于重绘的原因,混合对GPU性能会有影响,同时也是滑动或者动画帧率下降的罪魁祸首之一</li>

Color Misaligned Images

<li>会高亮的那些被缩放或者拉伸以及没有正确对齐到像素边界的图片(也就是非整型坐标))</li>
<li>这些中的大多数通常会导致图片的不正常缩放,如果一张大图当做缩略图显示,或者不正确的模糊图像</li>

Color Copied Images

<li>有时候 寄宿图片(layer.content) 的生成是由服务器CoreAnimation被强制生成一张图片,然后发送到渲染服务器,而不是简单的指向原始指针</li>
<li>这个选项把这些图片渲染成蓝色</li>
<li>复制图片对内存和CPU使用来说都是一项非常昂贵的操作,所以应该尽可能的避免</li>

Color Offscreen-Rendered Yellow

<li>这里会把那些需要离屏渲染的图层高亮成换色</li>
<li>这些图层很可能需要用shadowPath或者 shouldRasterize来优化</li>

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();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容