强制UIImagePickerController用Swift打开方形相机

Car*_*one 6 uiimagepickercontroller ios swift

我一直在努力寻找一种方法来启动带有方形实时视图的UIImagePickerController,并让它拍摄方形图片.我现在用于启动相机的代码如下

func takePicture() {
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary){
        println("Button capture")
        var imag = UIImagePickerController()
        imag.delegate = self
        imag.sourceType = UIImagePickerControllerSourceType.Camera
        //imag.mediaTypes = [kUTTypeImage];
        imag.allowsEditing = false
        self.presentViewController(imag, animated: true, completion: nil)
    }
}

func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!) {
    let selectedImage : UIImage = image
    //var tempImage:UIImage = editingInfo[UIImagePickerControllerOriginalImage] as UIImage

    var newImage: UIImage = resizeImageWithImage(selectedImage, size: CGSize(width: 320, height: 568))

    datImage.image=newImage

    let paths: NSArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    let documentsDir: NSString = paths.objectAtIndex(0) as NSString

    var dateFormat = NSDateFormatter()
    dateFormat.dateFormat = "yyyy-MM-dd-HH-mm-ss"
    let now:NSDate = NSDate(timeIntervalSinceNow: 0)
    let theDate = dateFormat.stringFromDate(now)

    //Make Photo URL

    self.photoURL = NSString(format: "/%@.png", theDate)

    //save resized image

    let pathToFullPhoto: NSString = documentsDir.stringByAppendingString(self.photoURL)

    let pngFull: NSData = UIImagePNGRepresentation(newImage)
    pngFull.writeToFile(pathToFullPhoto, atomically: true)



    self.dismissViewControllerAnimated(true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

触发: self.takePicture()

任何帮助,将不胜感激.

BHe*_*cks 0

你调查过cameraOverlayView房产吗?这似乎就是您正在寻找的。

链接到文档

然后,您需要在收到图像后对其进行裁剪,因为覆盖视图实际上不会进行裁剪。要裁剪,只需获取图像并将其根据 .txt 中“开口”的大小绘制为较小的矩形cameraOverlayView