//判斷camera是否可用
UIImagePickerController.isCameraDeviceAvailable(.Front)
//判斷某個數據方式是否可用
UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType)
// 裁剪圖片
Vc.allowsEditing = true
// 打開相冊
func selectImage(){
let pickerVc = UIImagePickerController()
// 設置代理
pickerVc.delegate = self
self.presentViewController(pickerVc, animated: true, completion: nil)
}
代理方法,準守的協議UIImagePickerControllerDelegate,UINavigationControllerDelegate
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
composePictureView.addImages(image.getImageScale(600))
picker.dismissViewControllerAnimated(true, completion: nil)
}
圖片壓縮方法
// 壓縮圖片
/*
指定寬度來壓縮
寬 1200 指定寬度 600
高 600 x
*/
func getImageScale(width: CGFloat) -> UIImage{
// 如果當前圖片的寬度 小于程序員指定的寬度
if self.size.width < width {
return self
}
// 獲取圖片的最終高度
let height = (width*self.size.height)/self.size.width
// 設置rect
let rect = CGRect(x: 0, y: 0, width: width, height: height)
// 通過上下文
// 01 開啟上下文
UIGraphicsBeginImageContext(rect.size)
// 02 將圖片渲染到上下文中
self.drawInRect(rect)
// 03 從上下文獲取image
let result = UIGraphicsGetImageFromCurrentImageContext()
// 04 關閉上下文
UIGraphicsEndImageContext()
return result
}