圆角图片因为GPU渲染会影响性能

参考:http://www.cocoachina.com/ios/20150803/12873.html

http://blog.sina.com.cn/s/blog_671d2e4f0101cxpl.html

http://www.cnblogs.com/thefeelingofsimple/archive/2013/02/20/2918547.html

instruments用的不多,我直接循环了几个圆角,3种方法试了下

 image.layer.cornerRadius = ;
 image.layer.masksToBounds = YES;

上面效率是最低的,

另外的重写draw方法,和mask图与原图覆盖生成新图,效率感觉差不多,等后面熟悉了instruments在测试下,

重写drawRect,(-_-,要弄个新的属性才会走这里,本菜鸟还不懂啊,先弄了个UIImageView用它自己的image走都不走这里。。。图形这方面设计太少了)

//注意背景色要和cell的背景色设置一致哦,不然-0-
- (void)drawRect:(CGRect)rect {
    CGRect bounds = self.bounds;
    [[UIColor whiteColor]set];
    UIRectFill(bounds);
    [[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:8.0] addClip];
    [self.image drawInRect:bounds];
} - (void)setImage:(UIImage *)image {
    _image = image;
    //需要这一步,需要刷新,不然显示会出问题
    [self setNeedsDisplay];
} - (void)dealloc {
    self.image = nil;
}

mask图与原图覆盖生成新图

- (UIImage *)imageByComposingImage:(UIImage *)image withMaskImage:(UIImage *)maskImage {
    CGImageRef maskImageRef = maskImage.CGImage;
    CGImageRef maskRef = CGImageMaskCreate(CGImageGetWidth(maskImageRef),
                                           CGImageGetHeight(maskImageRef),
                                           CGImageGetBitsPerComponent(maskImageRef),
                                           CGImageGetBitsPerPixel(maskImageRef),
                                           CGImageGetBytesPerRow(maskImageRef),
                                           CGImageGetDataProvider(maskImageRef), NULL, false);
    
    CGImageRef newImageRef = CGImageCreateWithMask(image.CGImage, maskRef);
    CGImageRelease(maskRef);
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef];
    CGImageRelease(newImageRef);
    
    return newImage;
}

补充:mask图与原图覆盖生成新图可以自定义任意形状的图哦

测试demo链接:http://pan.baidu.com/s/1qWCDprY

UITableView性能-圆角图片的更多相关文章

  1. UITableView性能优化

    关于UITableView的性能优化,网络上也有一些总结.在这里就介绍下我们项目中遇到的问题以及对应的解决方法.相信我们遇到的问题也有一定的普适性,能够作为其他问题的优化方案. Instruments ...

  2. iOS 图片文件格式判断、圆角图片

    1.圆角图片 // 设置圆形图片(放到分类中使用) - (UIImage *)cutCircleImage { UIGraphicsBeginImageContextWithOptions(self. ...

  3. iOS 切割圆角图片、图片文件格式判断

    1.切割圆角图片 // 性能不好,适合圆角图形数量比较少的情况 UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMak ...

  4. RoundedBitmapDrawable生成圆角图片

    Bitmap src = BitmapFactory.decodeResource(getResources(), imageId); //获取Bitmap图片 RoundedBitmapDrawab ...

  5. Android BitmapShader 实战 实现圆形、圆角图片

    转载自:http://blog.csdn.net/lmj623565791/article/details/41967509 1.概述 记得初学那会写过一篇博客Android 完美实现图片圆角和圆形( ...

  6. Android实现圆形圆角图片

    本文主要使用两种方法实现图形圆角图片 自定View加上使用Xfermode实现 Shader实现 自定View加上使用Xfermode实现 /** * 根据原图和变长绘制圆形图片 * * @param ...

  7. Android 高级UI设计笔记18:实现圆角图片

    1. 下面我们经常在APP中看到的圆角图片,如下: 再比如:微信聊天会话列表的头像是圆角的. 2. 下面分析一个Github的经典: (1)Github库地址: https://github.com/ ...

  8. 【Android】 图片编辑:创建圆角图片

    创建圆角图片的方式大同小异,最简单的就是 9.png 美工做出来的就是.这种最省事直接设置就可以. 另外一种就是通过裁剪 这里的剪裁指的是依据原图我们自己生成一张新的bitmap,这个时候指定图片的目 ...

  9. Android Xfermode 实战 实现圆形、圆角图片

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42094215,本文出自:[张鸿洋的博客] 1.概述 其实这篇本来准备Androi ...

随机推荐

  1. 抽象常量class

    需要把经常用到的常量抽象到一个类里面管理 如:

  2. InitialContext与lookup

    Context initial = new InitialContext(); Object objref = initial.lookup("java:comp/env/ejb/Simpl ...

  3. sql server Cannot resolve the collation conflict between "Chinese_PRC_BIN" and "Chinese_PRC_CI_AS" in the equal to operation

    今天查询二个db,出现这个错误,二种方法,一种是把db里的collation改成一样的:如果不方便可以直接在sql语句后面转一下: select * from table where crm_mscr ...

  4. python小括号( )与中括号 [ ]

    在python中小括号()表示的是tuple元组数据类型,元组是一种不可变序列. >>> a = (1,2,3) >>> a (1, 2, 3) >>& ...

  5. SniperOJ-leak-advanced-x86-64

    借助DynELF实现无libc的漏洞利用小结 1.leak-advance与leak的区别在于一个可用函数是write,一个可用函数是puts.write比puts更容易利用,虽然write需要的参数 ...

  6. swift中使用sqlite3

    import Foundation /** 1. 打开数据库 2. 如果没有数据表,需要首先创表 3. 数据操作 */ class SQLite { var db: COpaquePointer = ...

  7. Java多线程大合集

    1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成 ...

  8. (50)zabbix API二次开发使用与介绍

    zabbix API开发库 zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php. ...

  9. Linux三剑客之sed详解(1)

    sed (stream editor 流编辑器简写 ) ,用于过滤和转换文本 synopsis sed [option] ... {script-only-if-no-other-script} [i ...

  10. python--线程的其他方法

    一 . current_thread的用法 import threading import time from threading import Thread, current_thread def ...