2016-12-27 60 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

所以然后我必须转换图像到资产中,然后从选择中将其删除 –

相关问题