2015-12-08 97 views
-1

现在我加载图片查看文件的URL和它花了很长时间。我甚至把它作为高优先级放在主线上,但它仍然很慢。这实际上是在6个图像的循环中。我的问题是:快速的方式来加载图像

有没有加载图像比这个观点更快的方法?像文件url的替代方案?

//check the filetype 
    if ([fileType isEqual: @"image"]) 
    { 
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ 
     //get image 
     NSURL *imageFileUrl = [[NSURL alloc] initWithString:file.url]; 
     NSData *imageData = [NSData dataWithContentsOfURL:imageFileUrl]; 
      dispatch_async(dispatch_get_main_queue(), ^{ 
     imageView.image = [UIImage imageWithData:imageData]; 
      }); 
     }); 

    } 

我的图片在该预设的质量和大小是iphone屏幕的大小不管是一个5,6或6加

self.camera = [[LLSimpleCamera alloc] initWithQuality:AVCaptureSessionPreset1280x720 
              position:CameraPositionBack 
             videoEnabled:YES]; 

感谢,

+0

仅供参考 - 如果'file.url'实际上是将一个文件路径作为一个字符串返回,那么您不能使用'initWithString'创建'NSURL'。你需要使用'initFileURLWithPath:'。但是,如果'file.url'返回类似'file:// somepath/to/file'的东西,那么你所拥有的就很好。 – rmaddy

+1

回答你的问题,不,没有任何加载图像的快捷方式。 – rmaddy

+0

这可能会有所帮助:https://github.com/rs/SDWebImage – kpsharp

回答

0

虽然加载图像没有任何快捷方式,但您可以做些帮助。

  1. 最初只加载可见的图像,之后加载可能很快可见的图像。

  2. 如果图像的大小为超过视图大小创建较小的图像,也许几个不同的屏幕分辨率的设备。

  3. 创建低分辨率图像的版本,首先加载它们得到的东西了用户,然后加载全分辨率图像替换低分辨率版本..

请添加的大小图像和UIImageView的大小以及问题的屏幕分辨率。

+0

我用我可能的图像尺寸添加了我的质量预设 – ian

0

我可以建议你的是,

  • 在较低的分辨率/尺寸保存每个图像的副本 服务器上。
  • 在第一次加载时加载重复图像。
  • 当用户具体地观看图像,加载原始图像然后。