[英]Can get image from PHAsset of library
我正在使用QBImagePickerController一次選擇多個圖像。
所以,這是我的整個代碼
我正在使用此代碼呈現imagepickerController
let imagePickerController = QBImagePickerController()
imagePickerController.delegate = self
imagePickerController.allowsMultipleSelection = true
imagePickerController.mediaType = .Image
self.presentViewController(imagePickerController, animated:
true, completion: nil)
所以當我選擇多個圖像並單擊完成時,此方法調用
func qb_imagePickerController(imagePickerController: QBImagePickerController!, didFinishPickingAssets assets: [AnyObject]!) {
for asset in assets {
print(asset.fileName)
}
self.dismissViewControllerAnimated(true, completion: nil)
}
例如,我選擇一個圖像,然后像這樣打印
<PHAsset: 0x7fc55d954500> 6006CE57-81FE-4DC0-8C52-5DB43CE7638D/L0/001 mediaType=1/0, sourceType=1, (1920x1080), creationDate=2016-05-26 09:15:34 +0000, location=0, hidden=0, favorite=0
從這個我怎樣才能獲得圖像並將其設置為collectionview?
我從中獲取fileName但是不值得從中設置圖像。
我使用filePathURL,fileURL,absoluteURL但沒有發生任何事情它崩潰了
所以請幫幫我吧
謝謝
您需要使用requestImageForAsset
來獲取UIImage
。 你可以這樣得到形象
func qb_imagePickerController(imagePickerController: QBImagePickerController!, didFinishPickingAssets assets: [AnyObject]!) {
let requestOptions = PHImageRequestOptions()
requestOptions.resizeMode = PHImageRequestOptionsResizeMode.Exact
requestOptions.deliveryMode = PHImageRequestOptionsDeliveryMode.HighQualityFormat
// this one is key
requestOptions.synchronous = true
for asset in assets
{
if (asset.mediaType == PHAssetMediaType.Image)
{
PHImageManager.defaultManager().requestImageForAsset(asset as! PHAsset, targetSize: PHImageManagerMaximumSize, contentMode: PHImageContentMode.Default, options: requestOptions, resultHandler: { (pickedImage, info) in
self.yourImageview.image = pickedImage // you can get image like this way
})
}
}
imagePickerController.dismissViewControllerAnimated(true, completion: nil)
}
let imagePicker = QBImagePickerController()
imagePicker.delegate = self
imagePicker.numberOfColumnsInPortrait = 2
imagePicker.maximumNumberOfSelection = 2
imagePicker.allowsMultipleSelection = true
imagePicker.mediaType = .video
self.present(imagePicker, animated: true, completion: nil)
func qb_imagePickerController(_ imagePickerController: QBImagePickerController!, didFinishPickingAssets assets: [Any]!) {
for asset in assets
{
PHCachingImageManager().requestAVAsset(forVideo: asset as! PHAsset, options: nil, resultHandler: {(asset, audioMix, info) -> Void in
if asset != nil {
let avasset = asset as! AVURLAsset
let urlVideo = avasset.url
yourarray.add(urlVideo as URL)
}
})
}
imagePickerController.dismiss(animated: true) {
//You can access video urls here
print("Total Videos:\(yourarray.count)")
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.