我可以启动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)
}
我可以从手机上的图片库中选择一张图片,也可以拍一张照片。
但我想在相机视图中选择一个保存的图库图片,它是如何在标准相机应用程序中。这可能吗?
答案 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)
}
}