我正在捕捉视频输出的每一帧,并通过处理它,我将一个CALayer添加到一个叠加层,应该根据处理帧的结果进行转换。
CALayer基本上知道如何画箭头。 如果我只在它的每一帧上添加CALayer,但是如果我对它应用了一个变换,它将根本不显示。
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
dispatch_async(dispatch_get_main_queue(), ^(void)
{
firstLayer.transform = CATransform3DMakeRotation(M_PI_2, 1, 0, 0);
[firstLayer setNeedsDisplay];
});
}
有什么问题?如何使叠加显示每帧上转换的图层?
答案 0 :(得分:0)
你正在围绕X轴旋转你的图层π/ 2弧度(90°),使你的图层看起来完全不可见,因为你正好看它是正面的。
我假设您打算在Z轴上旋转90°,您可以将其视为指向/退出屏幕的轴。如果这是您打算做的,那么转而围绕此轴旋转,如下所示:
firstLayer.transform = CATransform3DMakeRotation(M_PI_2, 0, 0, 1);