在装有 iOS 6.1 的 iPad 3 Retina 上,我初始化我的静态相机:
stillCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPresetPhoto cameraPosition:AVCaptureDevicePositionBack];
stillCamera.outputImageOrientation = UIInterfaceOrientationLandscapeLeft;
我用这些过滤器设置了相机:
UIImage *inputImage = [UIImage imageNamed:@"blank-1x1.png"];
sourcePicture = [[GPUImagePicture alloc] initWithImage:inputImage smoothlyScaleOutput:YES];
[sourcePicture processImage];
chromaKeyBlendFilter = [[GPUImageChromaKeyBlendFilter alloc] init];
[chromaKeyBlendFilter setColorToReplaceRed:0.0 green:1.0 blue:0.0];
[chromaKeyBlendFilter setThresholdSensitivity:0.37f];
filter = chromaKeyBlendFilter;
[stillCamera addTarget:filter];
[sourcePicture addTarget:filter];
[filter addTarget:videoPreviewView]; // 1024x768 view
[stillCamera startCameraCapture];
当我捕获我使用的图像时:
[stillCamera capturePhotoAsPNGProcessedUpToFilter:filter withCompletionHandler:^(NSData *processedPNG, NSError *error){
self.currentImage = [UIImage imageWithData:processedPNG];
});
但是我得到的图像是屏幕大小(Retina 风格)2048x1536,而不是我期望的后置摄像头为 2420x1936。我还注意到#imageFromCurrentlyProcessedOutputWithOrientation# 也只返回屏幕大小,并查看 GPUImageStillCamera.m 中的捕获代码,它看起来好像是输出的来源。
我不知道为什么,因为我还有一个选项/按钮来使用非 GPUImage 设置,并且我得到了 2420x1936 的 PNG 图像。
我在这里做错了什么?感谢您的任何提示(因为我真的想要 2420x1936)。