我有一张图片专辑,我从iphone库中取出所有图片作为缩略图,并展示一张专辑。
当用户从相册中选择内容时,我必须拍摄ORIGINAL图像(不是缩略图)并保存。
因此,如果我在资产上运行,并保存仅缩略图,则需要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 !
所以,我需要一个解决方案,所以我可以显示缩略图,但也有一些连接/指向全分辨率图像,所以它不会永远保存它们。
答案 0 :(得分:0)
我的解决方案就是使用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];