1.配置权限:
(1)相机权限:
key:Privacy - Camera Usage Description
value:拍摄照片需要获取相机权限
(2)相册权限:
key:Privacy - Photo Library Usage Description
value:选择图片需要获取相册权限
2.代码:
//MARK: - UIImagePickerControllerDelegate,UINavigationControllerDelegate
extension EditUserInfoController: UIImagePickerControllerDelegate,UINavigationControllerDelegate {
func openCamera() {
let picker = UIImagePickerController()
picker.delegate = self
if UIImagePickerController.isCameraDeviceAvailable(.rear) {
picker.sourceType = .camera
self.present(picker, animated: true, completion: nil)
} else {
HUDTool.showText(text: "暂无相机权限")
}
}
func openAlbum() {
let picker = UIImagePickerController()
picker.delegate = self
if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
picker.sourceType = .photoLibrary
self.present(picker, animated: true, completion: nil)
} else {
HUDTool.showText(text: "暂无相册权限")
}
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]){
picker.dismiss(animated: true, completion: nil)
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
self.portraitImageView.image = image
}
//裁剪图片
func imageWithImageSimple(image:UIImage,scaledToSize newSize:CGSize)->UIImage{
var width:CGFloat!
var height:CGFloat!
if image.size.width/newSize.width >= image.size.height / newSize.height{
width = newSize.width
height = image.size.height / (image.size.width/newSize.width)
}else{
height = newSize.height
width = image.size.width / (image.size.height/newSize.height)
}
let sizeImageSmall = CGSize(width:width,height:height)
//print(sizeImageSmall)
UIGraphicsBeginImageContext(sizeImageSmall);
image.draw(in: CGRect(x:0,y:0,width:sizeImageSmall.width,height:sizeImageSmall.height))
let newImage:UIImage=UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext();
return newImage;
}
}
3.增加图片编辑功能:
//允许图片编辑
picker.allowsEditing = true
//在 imagePickerController 代理方法中获取编辑后的图片
let image = info[UIImagePickerControllerEditedImage] as! UIImage
网友评论