我有一个实时摄像头视图,当我拍摄截图时,我只想将其中的一部分包含在圆形UIImage中。我得到的只是圆形UIImage和白色背景。 我将圆形图像称为circleImage,摄像机查看camView:
self.camView = self.faceImage.snapshotViewAfterScreenUpdates(false)
UIGraphicsBeginImageContextWithOptions(self.circleImage.bounds.size, false, 0);
self.circleImage.drawViewHierarchyInRect(self.camView.bounds, afterScreenUpdates: true)
var image:UIImage = UIGraphicsGetImageFromCurrentImageContext()
var imageData:NSData = UIImagePNGRepresentation(image)
UIGraphicsEndImageContext();
//Save it to the camera roll
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
答案 0 :(得分:0)
不幸的是需要的行为,没有办法使用renderInContext
或drawViewHierarchy
捕获AVCaptureVideoPreviewLayer的内容,唯一的解决方案似乎是从缓冲区委托中读取会话的数据输出,你需要一个从这里抓住它的图像
有关更多信息,请查看here,还有一个很好的替代解决方案。