1

AVCaptureSession写真撮影に使用しています。これが私のコードです:

AVCaptureSession * newSession = [[AVCaptureSession alloc] init];

// Configure our capturesession
newSession.sessionPreset = AVCaptureSessionPresetMedium;

サイズ 360*480 の画像を取得しました。しかし、ここに私の問題があります。正確に280 * 200のサイズの画像が必要です。画像のトリミングには興味がありません。画像サイズを設定する方法はありAVCaptureSessionますか?前もって感謝します..

4

1 に答える 1

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;

ソース: 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");
}
于 2013-01-14T16:23:47.223 に答える