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

问题描述:

好的,所以我一直在这一段时间,我似乎无法解决它。如何使用按钮点击功能将PHAsset转换为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) 



} 

哪个标志有错误。有人能帮我一下吗?!三江源

+0

我没有在你的代码看到你从功能'getAsset返回的UIImage()',什么是'chosenImg'? 我会这样做: 'self.SelectImageView.image = getAsset(selectedImg)' – Chajmz

+0

'func getAsset(asset:PHAsset) - > UIImage'已经在它的最后一个大括号作为'return image'返回之前返回。 PS:忽略选择的Img。我已经更新了它。如果有机会,你可以重写所有功能在一个按钮,而不是在按钮中调用它,这将是非常棒的。但是,任何帮助将非常感激。谢谢 –

我从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) 
} 
+0

'self.selectedImageView.image = getAsset(selectedImg)'用标记错误值的类型UIViewController没有成员selectedImageView –

+0

哪个'UIImageView'要添加图像?你能分享完整的控制器代码来检查你是否有'selectedImageView'的插座吗?还要确保拼写可能是拼错的。 –

+0

优秀,现在完美。谢谢@*。我只需要更改UIImageView的名称。 –