iOS - 如何使用GPUImageStillCamera解析图像:分辨率3840x2160?

时间:2016-05-17 05:14:45

标签: ios objective-c image camera gpuimagestillcamera

我需要使用GPUImageStillCamera捕获最高分辨率的图像,我尝试过以下属性:AVCaptureSessionPresetPhoto,AVCaptureSessionPreset1920x1080。它给了我一些好的结果。请注意,当我使用属性AVCaptureSessionPresetPhoto而不是AVCaptureSessionPresetHigh捕获图像时,它(AVCaptureSessionPresetPhoto)提供比AVCaptureSessionPresetHigh更好的结果。但是当我使用属性AVCaptureSessionPreset3840x2160意味着:

videoCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPreset3840x2160 cameraPosition:AVCaptureDevicePositionBack]; .

我的应用程序崩溃(即使在最新的iPhone版本中)并显示此消息(我使用的是iPhone 5 S,版本:9.3.1,Xcode版本:7.3)

  

由于未捕获的异常而终止应用   'NSInvalidArgumentException',原因:'AVCaptureSessionPreset3840x2160   不是支持的预设。

有没有办法检查iOS设备是否支持具体的AVCaptureSessionPreset?我想设置AVCaptureSession的分辨率,但我不知道如何检查设备是否能够使用选定的分辨率捕获相机帧。 总之,我需要所有不同iPhone设备的最高质量,最大尺寸的图像。任何建议都会很棒。谢谢你们。

1 个答案:

答案 0 :(得分:0)

您可以使用AVCaptureSession的{​​{1}}属性,如下所示

sessionPreset

您也应该在代码中尝试 cameraSession.sessionPreset = AVCaptureSessionPresetHigh;

希望这会有所帮助:)