iPhone 4S无法处理AVCaptureSessionPresetPhoto的完整分辨率

时间:2013-07-31 20:47:28

标签: iphone memory-leaks photo avcapturesession

我一直在iPhone 4S和iPhone5上开发我的项目。在我的项目中,拍摄照片后,我裁剪它然后调整图像大小以应用照片滤镜。 iPhone 5似乎很好地处理了这个问题但是在iPhone 4S上,它似乎在拍照过程中的不同点崩溃。我查看是否有任何我可能错过的内存泄漏。以下是代码:

[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error)
 {

     [captureSession stopRunning];

     NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
     UIImage *newImage = [[UIImage alloc] initWithData:imageData];

在此之后,我会自动检测所拍照片的方向并旋转图片,使其始终竖直。

在此之后,我使用NYXImagesKit

将图像裁剪成正方形
     float filteringSquareRatio = 307.0/320.0;
     UIImage *cropped = [newImage cropToSize:CGSizeMake(filteringSquareRatio * newImage.size.width, filteringSquareRatio * newImage.size.width) usingMode:NYXCropModeCenter];

最后,我使用MGImageUtilities

调整图片大小
    UIImage *resized = [cropped imageScaledToFitSize:CGSizeMake(320, 320)];

有更好的方法吗?我目前正在使用AVCaptureSessionPresetPhoto,因为我想将原始高分辨率照片保存在设备上,并将裁剪和调整大小的版本发送到服务器。我不想使用任何视频预设,因为相机已放大。可能导致崩溃的原因是什么?

1 个答案:

答案 0 :(得分:0)

如果您无法找到解决方案(我也看到了这个问题),您可能会检测到4s并使用“高”预设而不是分辨率较低。