2016-12-27 62 views
1

我使用QBImagePickerController一次選擇多個圖像。可以從庫的PHAsset獲取圖像

所以,這裏是我的全部代碼

我使用此代碼呈現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但沒有發生墜毀

所以,請幫我一下吧
謝謝

+0

的可能的複製[雖然轉換PHAsset到的UIImage失去透明度(http://stackoverflow.com/questions/38283416/while-converting-phasset-to-uiimage-losing - 透明度) –

+0

@Jecky結帳我的答案 –

回答

4

您需要使用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) 
} 
+0

我從imagepicker中選擇多個圖像並顯示在我的collectionview中。在該集合視圖中我有一個刪除按鈕,所以當我刪除這個圖像我如何刪除選擇到imagepickercontroller –

+0

你可以通過這種方式刪除 imagePickerController.selectedAssets.removeObject(資產as!PHAsset) –

+0

所以然後我必須轉換圖像到資產中,然後從選擇中將其刪除 –

相關問題