AVCapturePresets を使用すると、ビデオまたは写真がキャプチャされる明示的なサイズが得られます。写真を撮ったら、目的のサイズに合わせて操作 (トリミング、サイズ変更) できますが、事前に決められたキャプチャ サイズを設定することはできません。
受け入れ可能なプリセットがあります:
NSString *const AVCaptureSessionPresetPhoto;
NSString *const AVCaptureSessionPresetHigh;
NSString *const AVCaptureSessionPresetMedium;
NSString *const AVCaptureSessionPresetLow;
NSString *const AVCaptureSessionPreset320x240;
NSString *const AVCaptureSessionPreset352x288;
NSString *const AVCaptureSessionPreset640x480;
NSString *const AVCaptureSessionPreset960x540;
NSString *const AVCaptureSessionPreset1280x720;
ソース: https://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVCaptureSession_Class/Reference/Reference.html
この方法は、目的のサイズにスケーリングするのに役立つはずです。
-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
セッションの初期化とプリセットのセットアップ:
// create a capture session
if(session == nil){
session = [[AVCaptureSession alloc] init];
}
if ([session canSetSessionPreset:AVCaptureSessionPreset320x240]) {
session.sessionPreset = AVCaptureSessionPreset320x240;
}
else {
NSLog(@"Cannot set session preset");
}