美文网首页
UIImage+ImageEffects中的CGContextD

UIImage+ImageEffects中的CGContextD

作者: Maj_sunshine | 来源:发表于2019-06-11 23:02 被阅读0次

发现现象

  • UIImage+ImageEffects绘制的模糊效果在公司的测试机iPhone6 plus 11.4.1版本上出现内存暴增的情况. 直到闪退
  • 在主线程中绘制会导致卡顿

出现原因

Simulator Screen Shot - iPhone 6 - 2019-06-11 at 22.39.51.png
  • 列表滑动cell复用过程中不断的直接模糊效果的绘制. (模糊图片绘制生成后缓存到本地,然而快速滑动的时候会导致不停的绘制但是绘制的图片还未生成)导致
    开始绘制->查询缓存->缓存没有->开始绘制->查询缓存->缓存没有...
    这样一个恶性循环.

解决

  • 其实解决方法就是加个锁, 就是调试这个bug的原因的过程比较麻烦.
    这里图片用SD去缓存了
- (void)setEffectImage:(UIImage *)effectImage imageStr:(NSString *)imageStr color:(UIColor *)color {
    static pthread_mutex_t pLock;
    pthread_mutex_init(&pLock, NULL);
    dispatch_async(dispatch_get_global_queue(0, 0), ^{
        pthread_mutex_lock(&pLock);
        UIImage *image = nil;
        if (color) {
            image = [effectImage applyTintEffectWithColor:color];
        } else {
            image = [effectImage applyDarkEffect];
        }
        dispatch_async(dispatch_get_main_queue(), ^{
            self.image = image;
            NSString *key = imageStr;
            if (addMeari) {
                key = [imageStr stringByAppendingString:@"meari"];
            }
            [[SDImageCache sharedImageCache] storeImage:image forKey:key toDisk:YES];
            pthread_mutex_unlock(&pLock);
        });
    });
}

相关文章

  • UIImage+ImageEffects中的CGContextD

    发现现象 UIImage+ImageEffects绘制的模糊效果在公司的测试机iPhone6 plus 11.4....

  • CGBitmapContextCreate CGContextD

    出现上面错误的原因,本人不太清楚,出现的环境iOS 12.0.1 iPhone 6;但是在iPhoneX模拟器上...

  • 图片的虚化效果

    使用到 UIImage+ImageEffects,点击这里下载。 使用起来很简单,就一句代码的事儿。 参考如何使用...

  • 模糊效果

    //导入第三方库头文件UIImage+ImageEffects //创建模糊对象并指定模糊类型毛玻璃类 UIBlu...

  • UIImage+ImageEffects设置模糊效果

  • 日语中的「中」的读法

    今天来讲讲日语中接尾词「中」的读音。 在日语里,「中」可用作接尾词接在名词之后,作接尾词使用时它有两种读音:「ちゅ...

  • 【乱世中的天堂】中

    清晨,我在一阵一阵富有节奏感的声音中起床了,八点多了,我向旁边撇了一眼,看到我的妻子早已起床,伴着熟悉的剁菜声中我...

  • 儿子中中的成长

    儿子中中一米八的个子,只要得空,就假装手拍篮球,做着各种球场上躲人、过人、上篮的动作,他爱篮球。他笑起来若隐若现单...

  • R中的对象(中)

    我们对R中的数据类型对象有了一定的了解,接下来就是对数据对象的简单操作。在excel里我们可以通过鼠标来实现,在R...

  • 《论语》中的成语(中)

    1.见贤思齐 【解释】:贤:德才兼备的人;齐:相等。见到德才兼备的人就想赶上他。 【出自】:《论语·里仁》:“见贤...

网友评论

      本文标题:UIImage+ImageEffects中的CGContextD

      本文链接:https://www.haomeiwen.com/subject/tjucfctx.html