我正在使用AVCaptureSession
拍照。这是我的代码:
AVCaptureSession * newSession = [[AVCaptureSession alloc] init];
// Configure our capturesession
newSession.sessionPreset = AVCaptureSessionPresetMedium;
我的图片大小为360 * 480。但这是我的问题,我想要的图像完全是280 * 200的大小。我对裁剪图像不感兴趣。是否可以通过AVCaptureSession
设置图像尺寸?提前谢谢..
答案 0 :(得分:3)
使用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;
我使用的方法可以帮助您扩展到所需的大小:
-(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");
}