如何使用按钮点击功能将 PHAsset 转换为 UIImage

How do you use a button click function to convert an PHAsset to a UIImage

好的,我已经处理了一段时间了,但似乎无法解决它。

我有一个 ImagePicker,它可以将图像捆绑到 PHAssest 中。来自 https://github.com/hyperoslo/ImagePicker

选择图像后,将激活完成按钮。我有一个 UIImageView,当我按下 func doneButtonDidPress(images: [UIImage]) 时,它会将 PHAsset 转换为 UIImage 并将其加载到 ImageView 中。目前,这是我的代码不起作用:

// CONVERT PHASSET TO UIIMAGE
func getAsset(asset: PHAsset) -> UIImage {
let manager = PHImageManager.defaultManager()
let option = PHImageRequestOptions()
var image = UIImage()
option.synchronous = true
manager.requestImageForAsset(asset, targetSize: CGSize(width: 100.0, height: 100.0), contentMode: .AspectFit, options: option, resultHandler: {(result, info)->Void in
    image = result!
})
return image
}




func doneButtonDidPress(images: [UIImage]) {



self.imagePickerController.dismissViewControllerAnimated(true, completion: nil)
var selectedImg = imagePickerController.stack.assets

getAsset(selectedImg)
self.SelectedImageView.image = UIImage(named: selectedImg)



}

哪个标记有错误。有人能帮我一下吗?!谢谢

我从 PHAsset 得到 UIImage 像 :

func getAsset(asset: PHAsset) -> UIImage {
var image = UIImage()
let imgManager = PHImageManager.defaultManager()
            let requestOptions = PHImageRequestOptions()
            requestOptions.synchronous = true
            imgManager.requestImageForAsset(asset, targetSize: CGSizeMake(300.0, 300.0), contentMode: PHImageContentMode.AspectFit, options: requestOptions, resultHandler: { (img, _) in
                image = img
            })
return image
}

此代码已经过测试并且目前可以在我的应用程序中使用。

完成按钮方法应该是这样的:

func doneButtonDidPress(image: [UIImage]) {
self.imagePickerController.dismissViewControllerAnimated(true, completion: nil)
var selectedImg = imagePickerController.stack.assets.first
self.selectedImageView.image = getAsset(selectedImg)
}