繁体   English   中英

从相机胶卷中获取所有图像并在滚动视图中显示?

[英]get all the images from camera roll and show it on the scroll view?

目前,我正在使用ALasset库来获取图像,但是当相机胶卷中的图像数量很大时,我会遇到内存警告问题。

e.g assetsd died

这是我从相机胶卷获取图像的代码

[self.assetsGroup enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:(NSMakeRange(0, self.assetsGroup.numberOfAssets - 1))] options:NSEnumerationReverse usingBlock:^(ALAsset result, NSUInteger index, BOOL stop)
             {
                 if (result)
                 {
                     UIImage *imageThumbnail;

                     imageThumbnail = [ImageHelper scaleAndRotateImage:[UIImage imageWithCGImage:[[result defaultRepresentation] fullScreenImage]] maxSize:500];

                     if(imageThumbnail)
                     {
                         //Do your code here….
                     }
             }];

我如何解决内存警告和资产耗尽的问题。 我还可以知道具有滚动视图的应用程序,其中包含所有相机胶卷图像,但滚动显示格式不是网格形式吗? 这样我就可以得到它的参考。

提前致谢。

我认为不是滚动视图,您必须使用具有row = self.assetsGroup.numberOfAssets - 1的集合视图,并在集合视图单元格中编写代码,如下所示

[self.assetsGroup enumerateAssetsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:(NSMakeRange(0, indexPath.row))] options:NSEnumerationReverse usingBlock:^(ALAsset result, NSUInteger index, BOOL stop)
         {
             if (result)
             {
                 UIImage *imageThumbnail;

                 imageThumbnail = [ImageHelper scaleAndRotateImage:[UIImage imageWithCGImage:[[result defaultRepresentation] fullScreenImage]] maxSize:500];

                 if(imageThumbnail)
                 {
                     //Do your code here….
                 }
         }];

还有一张图片,缩略图大小只有几kb,因此您可以将其存储(在本地目录中或使用nsdata的coredata中),并在使用enumerateAssetsAtIndexes之前检查图像是否已存储,然后不要调用使用该存储的图像

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM