Hiya can anybody inform me that how am i able to extract solely the video half that’s exhibiting on display when I’m utilizing AVCaptyreVideoPreviewLayer and have set the videoGravity to AVlayerVideoGravityResizeAspect.
Mainly I need to add an overlay solely on high of digicam view,at present it’s protecting tje complete display together with the black borders that seem on high and backside
Attaching pic for referencetextual content
- (void) setUpCameraPreviewLayer {
self.previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:self.captureSession];
if (self.previewLayer) {
self.previewLayer.videoGravity = AVLayerVideoGravityResizeAspect;
self.previewLayer.connection.videoOrientation = AVCaptureVideoOrientationPortrait;
dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_async(globalQueue, ^{
[self.captureSession startRunning];
dispatch_async(dispatch_get_main_queue(), ^{
self.previewLayer.body = self.view.bounds;
[self.view.layer addSublayer:self.previewLayer];
self.view.layer.backgroundColor = [UIColor blackColor].CGColor;
// [self setUpGreyLayer];
});
});
}
}
- (void) setUpGreyLayer {
//Including the greyLayer on high of digicam preview layer
self.greyLayer = [CALayer layer];
self.greyLayer.body = self.previewLayer.bounds;
self.greyLayer.backgroundColor = [UIColor blackColor].CGColor;
self.greyLayer.opacity = 0.6;
self.maskLayer = [CAShapeLayer layer];
CGFloat maskX = (CGRectGetWidth(self.greyLayer.bounds) - 250.0) / 2.0;
CGFloat maskY = (CGRectGetHeight(self.greyLayer.bounds) - 300.0) / 2.0 - (CGRectGetHeight(self.greyLayer.bounds) * 0.1);
CGRect maskRect = CGRectMake(maskX, maskY, 250.0, 300.0);
CGFloat smallerDimension = MIN(CGRectGetWidth(maskRect), CGRectGetHeight(maskRect));
CGFloat cornerRadius = smallerDimension * 8;
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:maskRect cornerRadius:cornerRadius];
[maskPath appendPath:[[UIBezierPath bezierPathWithRect:self.greyLayer.bounds] bezierPathByReversingPath]];
self.maskLayer.path = maskPath.CGPath;
// Set the masks layer to the greyLayer
self.greyLayer.masks = self.maskLayer;
[sel`your text`f.view.layer insertSublayer:self.greyLayer above:(self.previewLayer)];
}