UIImagePickerController - 在摄像机视图中选择已保存的图像

时间:2016-05-10 09:50:54

标签: ios swift camera uiimagepickercontroller

我可以启动UIImagePickerController来制作图片:

func selectCamera(){
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera) {
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.Camera;
        imagePicker.allowsEditing = true
        self.presentViewController(imagePicker, animated: true, completion: nil)
    }
}

并使用此功能从保存的图片中进行选择:

func selectPicture() {
    let picker = UIImagePickerController()
    picker.allowsEditing = true
    picker.delegate = self
    presentViewController(picker, animated: true, completion: nil)
}

我可以从手机上的图片库中选择一张图片,也可以拍一张照片。

但我想在相机视图中选择一个保存的图库图片,它是如何在标准相机应用程序中。这可能吗?

2 个答案:

答案 0 :(得分:3)

如果你想在相机视图中有Gallery Pics,你必须创建一个自定义cameraOverlay视图,它有一个按钮,然后打开保存的图片。

为了加快速度,您可以使用像 - >这样的库。 https://github.com/GabrielAlva/Cool-iOS-Camera

或者

您还可以有一个操作表,要求用户选择他想要的选项。

检查一下 - > How to allow the user to pick a photo from his camera roll or photo library? &安培;这个 - > https://github.com/chroman/CRMediaPickerController

答案 1 :(得分:-1)

我正在使用此解决方案,没有其他库。 首先不要忘记委托,UIImagePickerControllerDelegate和导航委托。那些thigns只需要imagePickerController。

更新,检查函数saveImageViewToAlbum,确保你的imageView包含图像,否则你可能会捕获异常。将照片添加到已保存的相册中。可选的completionSelector应具有以下形式:

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;

刚刚创建了这个项目,一切都适用于swift,iOS 9.3

    import UIKit

    class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    @IBOutlet weak var choosenImageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func openAlbum(sender: UIButton) {
        let imagePickerController = UIImagePickerController()
        imagePickerController.delegate = self
        imagePickerController.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
        self .presentViewController(imagePickerController, animated: true, completion: nil)

    }
    func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {

        choosenImageView.image = image
        self .dismissViewControllerAnimated(true, completion: nil)
    } 
@IBAction func saveImageViewToAlbum(sender: UIButton) {
                UIImageWriteToSavedPhotosAlbum(choosenImageView.image!, nil, nil, nil)
    }
}
相关问题