Sum*_*hit 1 iphone image-gallery ios phfetchoptions swift3
所以我使用下面的代码从库中获取所有工作正常的图像:
func grabPhotos(){
let imgManager = PHImageManager.default()
let requestOptions = PHImageRequestOptions()
requestOptions.isSynchronous = true
requestOptions.deliveryMode = .highQualityFormat
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
if let fetchResults : PHFetchResult = PHAsset.fetchAssets(with: .image, options: fetchOptions){
if fetchResults.count>0{
for i in 0..<fetchResults.count{
imgManager.requestImage(for: fetchResults.object(at: i), targetSize: CGSize(width:100, height: 100), contentMode: .aspectFill, options: requestOptions, resultHandler: {
image, error in
self.Galleryimages.append(image!)
print("array count is ",self.Galleryimages.count)
self.photoCollectionview.reloadData()
})
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在 UICollectionView 中显示所有图像,但我没有找到任何方法在单击任何缩略图时获取原始图像。当用户单击 UICollectionView 中填充的任何缩略图时,我想获取原始图像(全尺寸图像)。
谢谢。
加载缩略图。
做了太多事情后得到了解决方案,可能对其他人有帮助。以下是执行此操作的步骤。
步骤1:声明PHFetchResult对象
var Galleryimages: PHFetchResult<PHAsset>!
Run Code Online (Sandbox Code Playgroud)
第 2 步:使用以下代码从图库中获取结果:
func grabPhotos(){
Galleryimages = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: nil)
Run Code Online (Sandbox Code Playgroud)
}
第 3 步:使用以下代码在 UI(collectionview/Tableview)中显示缩略图:
let imageview = cell.viewWithTag(1) as! UIImageView
PHImageManager.default().requestImage(for: (Galleryimages?[indexPath.row])!, targetSize: CGSize(width: 200, height: 200), contentMode: .aspectFill, options: nil) { (image: UIImage?, info: [AnyHashable: Any]?) -> Void in
imageview.image = image
}
Run Code Online (Sandbox Code Playgroud)
第 4 步:最后使用下面的代码获得全尺寸图像。
let options = PHImageRequestOptions()
options.deliveryMode = .highQualityFormat
options.resizeMode = .exact
PHImageManager.default().requestImage(for: (Galleryimages[indexPath.row]), targetSize: PHImageManagerMaximumSize, contentMode: .aspectFill, options: options) { (image: UIImage?, info: [AnyHashable: Any]?) -> Void in
if let image = image {
//Use this originan image
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3406 次 |
| 最近记录: |