如何从相机裁剪区域

时间:2019-07-01 16:37:14

标签: ios swift

我在本机相机视图中绘制了一个矩形,我试图将其用作引导或裁剪区域以仅捕获名片图像,我无法在绘制的矩形内从相机本机视图裁剪图像

extension UIScreen {
    func  fullScreenSquare() -> CGRect {
        var hw:CGFloat = 0
        var isLandscape = false
        if UIScreen.main.bounds.size.width < UIScreen.main.bounds.size.height {
            hw = UIScreen.main.bounds.size.width
        }
        else {
            isLandscape = true
            hw = UIScreen.main.bounds.size.height
        }

        var x:CGFloat = 0
        var y:CGFloat = 0
        if isLandscape {
            x = (UIScreen.main.bounds.size.width / 2) - (hw / 2)
        }
        else {
            y = (UIScreen.main.bounds.size.height / 2) - (hw / 2)
        }
        return CGRect(x: x, y: y, width: hw, height: hw/3*2)
    }
    func isLandscape() -> Bool {
        return UIScreen.main.bounds.size.width > UIScreen.main.bounds.size.height
    }
}

func guideForCameraOverlay() -> UIView {
    let guide = UIView(frame: UIScreen.main.fullScreenSquare())
    guide.backgroundColor = UIColor.clear
    guide.layer.borderWidth = 4
    guide.layer.borderColor = UIColor.orange.cgColor
    guide.isUserInteractionEnabled = false
    return guide
}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    if setPhoto == 1 {
        if let image = info[UIImagePickerController.InfoKey.editedImage] as? UIImage{
            let size = CGSize(width: 600, height: 400)
            //let imageCroped = image.cgImage?.cropping(to: size)
            let imageCroped = image.crop(to: size)
            frontPhotoImageView.image = UIImage(cgImage: imageCroped as! CGImage)

            setPhoto = 0
            frontPhotoImage.setTitle("", for: UIControl.State.normal)


        }
        else {
            // Error message
        }

        self.dismiss(animated: true, completion: nil)
    }
    if setPhoto == 2 {
        if let image = info[UIImagePickerController.InfoKey.editedImage] as? UIImage{
            backPhotoImageView.image = image

            setPhoto = 0
            backPhotoImage.setTitle("", for: UIControl.State.normal)
        }
        else {
            // Error message
        }

        self.dismiss(animated: true, completion: nil)
    }
}

我希望在绘制的矩形中包含来自的图像,但不会发生。 I expect to crop the image to the size inside the orange rectangle on this image

0 个答案:

没有答案