2015-11-06 56 views
0

我试图从UIImagePickerController中获取图片,但图片正在以原始图片的形式收到,并且它的体积很大,而且放缓了我的应用。我怎样才能在这种情况下,PNG表示:如何从UIImagePickerController获取PNG表示?

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 
     let selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage 
     treatmentProtocolPhoto.image = selectedImage 
     dismissViewControllerAnimated(true, completion: nil) 
    } 

我希望在这个问题上的任何帮助。

+0

我认为你不能这样做,因为'UIImagePickerController'给你一个原始图像。 –

+0

但你可以在得到图像之后做到这一点,而不是使用'itemData = UIImagePNGRepresentation();''给你NSData。 –

回答

2

试试这个:

let selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage 
let imgData : NSData = UIImagePNGRepresentation(selectedImage)! 
treatmentProtocolPhoto.image = UIImage(data: imgData)! 
dismissViewControllerAnimated(true, completion: nil) 
+0

非常感谢! –

+0

欢迎!很高兴帮助 – iAnurag

+1

@RamiAmmoun yiu应该使用警卫或者如果让它安全地解包它而不是强迫解包它 –

1

你可以得到PNG版本:

UIImagePNGRepresentation(selectedImage)