zoukankan      html  css  js  c++  java
  • Swift4.0 从相册中获取图片和拍照

    第一步

    添加协议

    UIImagePickerControllerDelegate,UINavigationControllerDelegate
    

      

     

    第二步

    添加选择方式

    let sexActionSheet = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet)
    
            weak var weakSelf = self
    
            let sexNanAction = UIAlertAction(title: "从相册中选择", style: UIAlertActionStyle.default){ (action:UIAlertAction)in
    
                weakSelf?.initPhotoPicker()
                //填写需要的响应方法
    
            }
    
            let sexNvAction = UIAlertAction(title: "拍照", style: UIAlertActionStyle.default){ (action:UIAlertAction)in
    
    
                weakSelf?.initCameraPicker()
                //填写需要的响应方法
    
            }
    
    
            let sexSaceAction = UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel){ (action:UIAlertAction)in
    
                //填写需要的响应方法
    
            }
    
    
            sexActionSheet.addAction(sexNanAction)
            sexActionSheet.addAction(sexNvAction)
            sexActionSheet.addAction(sexSaceAction)
    
            self.present(sexActionSheet, animated: true, completion: nil)
    

      

    第三步

    //MARK: - 相机
    
        //从相册中选择
        func initPhotoPicker(){
            let photoPicker =  UIImagePickerController()
            photoPicker.delegate = self
            photoPicker.allowsEditing = true
            photoPicker.sourceType = .photoLibrary
            //在需要的地方present出来
            self.present(photoPicker, animated: true, completion: nil)
        }
    
    
        //拍照
        func initCameraPicker(){
    
            if UIImagePickerController.isSourceTypeAvailable(.camera){
                let  cameraPicker = UIImagePickerController()
                cameraPicker.delegate = self
                cameraPicker.allowsEditing = true
                cameraPicker.sourceType = .camera
                //在需要的地方present出来
                self.present(cameraPicker, animated: true, completion: nil)
            } else {
    
               print("不支持拍照")
    
            }
    
        }
    
    
    
        func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    
    
            //获得照片
            let image:UIImage = info[UIImagePickerControllerEditedImage] as! UIImage
    
            // 拍照
            if picker.sourceType == .camera {  
             //保存相册
            UIImageWriteToSavedPhotosAlbum(image, self, #selector(image(image:didFinishSavingWithError:contextInfo:)), nil)   
            }
    
            personImage.image = image
    
            self.dismiss(animated: true, completion: nil)
        }
    
    
      @objc func image(image:UIImage,didFinishSavingWithError error:NSError?,contextInfo:AnyObject) {
    
            if error != nil {
    
                print("保存失败")
    
    
            } else {
    
                print("保存成功")
    
    
            }
        }
    

      

     
  • 相关阅读:
    【WIN10】我的第一個WIN10-UWP應用——古文觀止
    【WIN10】文本圖標
    【WIN10】VisualStateManager使用說明
    【WIN10】Storyboard動畫板
    【WIN10】Bind、Binding與Converter的使用
    struts执行过程
    在jsp中的局部和全局变量
    jsp页面中的:<%@ page contentType="text/html; charset=utf-8" language="java"%>的作用及含义
    jsp中的this
    在Java接口中怎样访问定义的常量呢?
  • 原文地址:https://www.cnblogs.com/jukaiit/p/9401232.html
Copyright © 2011-2022 走看看