2016-12-27 3 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 checkout my Answer –

ответ

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 и отображается в моем представлении коллекции. В этом представлении коллекции у меня есть одна кнопка удаления, поэтому, когда я удаляю это изображение Как я могу удалить выделение в imagepickercontroller –

+0

, вы можете удалить этим способом imagePickerController.selectedAssets.removeObject (актив как! PHAsset) –

+0

, так что мне нужно преобразовать изображение в актив, а затем я удаляю его из выбора –

Смежные вопросы