iOS通过图片URL获取Size并优化加载速度

当在一个页面加载多张图片时,加载速度上要求顺畅,则需要用到缓存机制,SDWebImage可以解决之。下面方法1 没有用到缓存机制,加载图片较慢,方法2 用到缓存,加载速度快。

  • 方法1
NSData *data1 = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://video-zfish.oss-cn-shenzhen.aliyuncs.com/camera/pictures/201702/18140700_1.jpeg”]];
    UIImage *img1 = [UIImage imageWithData:data1];
    NSLog(@"img1 像素 w:%f, h:%f", img1.size.width, img1.size.height);
  • 方法2
// 优化 计算网络图片的大小Size
// 1. 先查看SDWebImage有没有缓存这张图片,如果有则不用下载网络图片,直接获取到图片的大小
// 2. 如果没有则会下载完整的图片NSData来计算大小
SDWebImageManager *manager = [SDWebImageManager sharedManager];
UIImage *img;
if ([manager diskImageExistsForURL:[NSURL URLWithString:imgURL]]) {
      img = [[manager imageCache] imageFromDiskCacheForKey:    [NSURL URLWithString:imgURL].absoluteString];
      ZFLOG(@"SD--获取网络图片的大小--Size : %@", NSStringFromCGSize(img.size));
} else {
      NSData *data = [NSData dataWithContentsOfURL:[NSURL       URLWithString:imgURL]];
      img = [UIImage imageWithData:data];
      ZFLog(@"NSData--获取网络图片的大小--Size : %@",     NSStringFromCGSize(img.size));
iOS通过图片URL获取Size并优化加载速度_第1张图片
编程愉快

你可能感兴趣的:(iOS通过图片URL获取Size并优化加载速度)