Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从assetsLibrary获取图像-全分辨率_Objective C - Fatal编程技术网

Objective c 从assetsLibrary获取图像-全分辨率

Objective c 从assetsLibrary获取图像-全分辨率,objective-c,Objective C,我有一个图像相册,我从iphone库中提取所有图像作为缩略图,并展示一个相册 当用户从相册中选择内容时,我必须拍摄原始图像(而不是缩略图)并保存它 因此,如果我在资源上运行并仅保存缩略图,则需要4秒(1000张图像),但如果我尝试将原始大小保存到阵列(以便以后使用),则需要花费很长时间并崩溃 [group enumerateAssetsAtIndexes:set options:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteg

我有一个图像相册,我从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 !

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

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

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

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];