繁体   English   中英

将 [PHAsset] 数组转换为 [UIImage]

[英]convert array of [PHAsset] to [UIImage]

有没有办法将 Phasset 数组转换为 UIImage?

var images = [PHAsset]()

func getImages() {
    let assets = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: nil)
    assets.enumerateObjects({ (object, count, stop) in
        // self.cameraAssets.add(object)
        self.images.append(object)
    })

    //In order to get latest image first, we just reverse the array
    self.images.reverse()

Swift 4 PHASSET UIIMAGE数组转换为PHASSET

 //MARK: Convert array of PHAsset to UIImages
    func getAssetThumbnail(assets: [PHAsset]) -> [UIImage] {
        var arrayOfImages = [UIImage]()
        for asset in assets {
            let manager = PHImageManager.default()
            let option = PHImageRequestOptions()
            var image = UIImage()
            option.isSynchronous = true
            manager.requestImage(for: asset, targetSize: CGSize(width: 100, height: 100), contentMode: .aspectFit, options: option, resultHandler: {(result, info)->Void in
                image = result!
                arrayOfImages.append(image)
            })
        }

        return arrayOfImages
    }
fileprivate let imageManager = PHCachingImageManager()

        // Request an image for the asset from the **PHCachingImageManager**.
        let asset = images.object(at: 0) //Index will be dynamic according to your requirement


        imageManager.requestImage(for: asset, targetSize: thumbnailSize, contentMode: .aspectFill, options: nil, resultHandler: { image, _ in

            print("need image is \(image)")


        })
 let imageManager = PHImageManager.default()
 let requestOptions = PHImageRequestOptions()
 let fetchOptions = PHFetchOptions()
 var imageArray = [UIImage]()

 override func viewDidLoad(){
  super.viewDidLoad()
  requestOptions.isSynchronous = true
  requestOptions.deliveryMode = 
  PHImageRequestOptionsDeliveryMode.highQualityFormat
  fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
  grabphoto()
  }

在这里,我们调用抓取照片功能,该功能获取图像类型的 PHAsset 并将其转换为 UIImage

func grabPhotos(){
 if let fetchResult : PHFetchResult = PHAsset.fetchAssets(with:.image,options: fetchOptions){
  if fetchResult.count > 0{
    if let fetchResult : PHFetchResult = PHAsset.fetchAssets(with:.image, options: self.fetchOptions){
       self.imageManager.requestImage(for: fetchResult.object(at: indexPath.row) as! PHAsset, targetSize: CGSize(width : 112, height : 116), contentMode: .aspectFill , options:
       self.requestOptions, resultHandler: { (image, error) in
       self.imageArray.append(image!)})
    }
   }else {
          print("no photos! ")
                
         }
       }
}

暂无
暂无

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

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