裁剪捕获的静止图像

时间:2015-06-04 05:18:01

标签: swift camera uiimage

我希望我拍摄的图像的特定部分在被观看之前被裁剪成圆形。

以下是捕捉静止图像的代码:

@IBAction func takePhoto(sender: UIButton) {

    self.stillImageOutput!.captureStillImageAsynchronouslyFromConnection(self.stillImageOutput!.connectionWithMediaType(AVMediaTypeVideo)) { (buffer:CMSampleBuffer!, error:NSError!) -> Void in
        var image = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(buffer)
        var data_image = UIImage(data: image)
        self.previewImage.image = data_image

    }

}

谢谢

1 个答案:

答案 0 :(得分:1)

if let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(buffer) {
    if let image = UIImage(data: imageData) {
        let square = image.size.width < image.size.height ? CGSize(width: image.size.width, height: image.size.width) : CGSize(width: image.size.height, height: image.size.height)
        let imageView = UIImageView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: square))
        imageView.contentMode = UIViewContentMode.ScaleAspectFill
        imageView.image = image
        imageView.layer.cornerRadius = square.width/2
        imageView.layer.masksToBounds = true
        UIGraphicsBeginImageContext(imageView.bounds.size)
        imageView.layer.renderInContext(UIGraphicsGetCurrentContext())
        let result = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        self.previewImage.image = result
    }
}