에 축소립니다. 아래의 코드는 작동하지만 GLKView의 이미지는 90도 회전하고 50 % 축소됩니다.CIImage가 회전하고 난 다음에, AVCaptureSession, 공정 콜백 (결국)에서 비디오와 비디오를 잡아 내 GLKView에 결과를 렌더링하기 위해 노력하고있어 GLKView
glContext은 [[EAGLContext alloc] initWithAPI : kEAGLRenderingAPIOpenGLES2]로 생성됩니다.
내 coreImageContext은 [CIContext contextWithEAGLContext : glContext]로 만들어집니다.
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
// process the image
CVPixelBufferRef pixelBuffer = (CVPixelBufferRef)CMSampleBufferGetImageBuffer(sampleBuffer);
CIImage *image = [CIImage imageWithCVPixelBuffer:pixelBuffer];
// display it (using main thread)
dispatch_async(dispatch_get_main_queue(), ^{
// running synchronously on the main thread now
[self.coreImageContext drawImage:image inRect:self.view.bounds fromRect:[image extent]];
[self.glContext presentRenderbuffer:GL_RENDERBUFFER];
});
}
수행 및 아핀 변환을 삽입하는 것이 비효율적 인 것처럼 보입니다. 회전 및 크기 조정을 방지하기 위해 설정 호출 또는 매개 변수가 누락 되었습니까?
같은 문제가 있습니다. 나는 당신의 경우와 거의 같은 코드를 사용했다. 나는 포기를 끝내고 회전을 보정하고 전체 화면을 채우기 위해 이미지의 크기를 조정하기 위해 affine transform을 사용했습니다. –