[英]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.