iOS开发网络篇-UIImage加载图片方式

iOS开发网络篇-UIImage加载图片方式,第1张

imageNamed默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片对象,则从指定地方加载图片然后缓存对象,并返回这个图片对象.多了就有问题。一般加上AutoReleasePool

imageWithContentsOfFile则仅只加载图片,不缓存.大量使用imageNamed方式会在不需要缓存的地方额外增加开销CPU的时间来做这件事.当应用程序需要加载一张比较大的图片并且使用一次性,那么其实是没有必要去缓存这个图片的,用imageWithContentsOfFile是最为经济的方式,这样不会因为UIImage元素较多情况下,CPU会被逐个分散在不必要缓存上浪费过多时间.。

// 方法一、添加UIImage分类

- (UIImage*)imageByApplyingAlpha:(CGFloat) alpha {

    UIGraphicsBeginImageContextWithOptions(self.size,NO,0.0f)

    CGContextRef ctx = UIGraphicsGetCurrentContext()

    CGRectarea = CGRectMake(0,0,self.size.width,self.size.height)

    CGContextScaleCTM(ctx, 1, -1)

    CGContextTranslateCTM(ctx, 0, -area.size.height)

    CGContextSetBlendMode(ctx, kCGBlendModeMultiply)

    CGContextSetAlpha(ctx, alpha)

    CGContextDrawImage(ctx, area,self.CGImage)

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext()

    UIGraphicsEndImageContext()

    returnnewImage

}

// 方法二、如果没有奇葩需求,干脆用UIImageView设置透明度

UIImageView*imageView = [[UIImageViewalloc]initWithImage:[UIImageimageWithName:@"yourImage"]]

imageView.alpha =0.5


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11349314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存