是否可以在没有 PHAsset 的情况下将照片存储在 iPhone 上?
Is it possible to get photos stored on the iPhone without PHAsset?
是否可以在不使用 PHAsset 的情况下获取存储在 iPhone 上的照片?
这是因为使用 PHAsset 迫使我使用这种方法:
PHImageManager.defaultManager().requestImageForAsset( ... )
而且这个方法需要时间来执行。
我只想直接从存储图像的文件夹中获取图像。
无法直接访问这些文件,因为它们不在您的应用程序的沙盒中。
什么需要时间,当你使用方法
PHImageManager.defaultManager().requestImageForAsset( ... )
是文件加载到内存中并解码为 UIImage。
为避免这种情况,请查看方法
PHImageManager.defaultManager(). requestImageDataForAsset( ... )
此方法将文件加载为 NSData。
注意:如果你想构建一个照片应用程序,用户可以在照片之间滑动,最好的策略可能是以下内容。
- 预加载用户可能加载的图像(例如当前显示的前后一张照片)
使用
PHCachingImageManager
当用户滑动到实际图片使用时
PHImageManager.defaultManager().requestImageForAsset( ... )
由于图像是预加载的,这应该会快得多
另一种方法是先加载较小的缩略图,然后延迟加载全屏图像。
是否可以在不使用 PHAsset 的情况下获取存储在 iPhone 上的照片?
这是因为使用 PHAsset 迫使我使用这种方法:
PHImageManager.defaultManager().requestImageForAsset( ... )
而且这个方法需要时间来执行。
我只想直接从存储图像的文件夹中获取图像。
无法直接访问这些文件,因为它们不在您的应用程序的沙盒中。 什么需要时间,当你使用方法
PHImageManager.defaultManager().requestImageForAsset( ... )
是文件加载到内存中并解码为 UIImage。 为避免这种情况,请查看方法
PHImageManager.defaultManager(). requestImageDataForAsset( ... )
此方法将文件加载为 NSData。
注意:如果你想构建一个照片应用程序,用户可以在照片之间滑动,最好的策略可能是以下内容。
- 预加载用户可能加载的图像(例如当前显示的前后一张照片)
使用
PHCachingImageManager
当用户滑动到实际图片使用时
PHImageManager.defaultManager().requestImageForAsset( ... )
由于图像是预加载的,这应该会快得多
另一种方法是先加载较小的缩略图,然后延迟加载全屏图像。