0

我有一个图片相册,我从 iphone 库中获取所有图片作为缩略图,并展示一个相册。

当用户从相册中选择某些东西时,我必须获取原始图像(不是缩略图)并保存它。

因此,如果我在资产上运行并仅保存缩略图,则需要 4 秒(1000 张图像),但如果我试图将原始大小保存到数组中(以便我以后可以使用它),则需要永远并崩溃。

[group enumerateAssetsAtIndexes:set options:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop)
 {
      CGImageRef imageRef = result.defaultRepresentation.fullResolutionImage;
      UIImage *toSend=[UIImage imageWithCGImage:imageRef];//original
      UIImage *thumbnail = [UIImage imageWithCGImage:[result thumbnail]];
      [assets addObject:thumbnail]; //works good
      [imagesToSend addObject:toSend]; // takes forever !

所以,我需要一个解决方案,以便我可以显示缩略图,但也有一些指向全分辨率图像的连接/指针,因此保存它们不会永远花费。

4

1 回答 1

0

我的解决方案就是使用 2 function 。第一个是这个,只是为了获取缩略图,因为它不需要时间,用户可以立即看到他的相册。

稍后当他选择他最喜欢的图像时,我再次使用此功能,但以全分辨率拍摄所需的相关图像,其中:

range=NSMakeRange('image tag number you want' ,1);
NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:range];


[group enumerateAssetsAtIndexes:set options:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop)
     {
                     if (result != nil)
                     {

                      CGImageRef imageRef = result.defaultRepresentation.fullScreenImage;
                      UIImage *toSend=[UIImage imageWithCGImage:imageRef];
于 2013-03-17T10:33:08.733 回答