Как сделать квадратное изображение в iphone с помощью avFoundation, например в приложении инстаграм?

Я делаю фото с AVFoundation, как здесь: http://red-glasses.com/index.php/tutorials/ios4-take-photos-with-live-video-preview-using-avfoundation/

Один фрагмент:

[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error)
 {
     CFDictionaryRef exifAttachments = CMGetAttachment( imageSampleBuffer, kCGImagePropertyExifDictionary, NULL);
     if (exifAttachments)
     {
         // Do something with the attachments.
         NSLog(@"attachements: %@", exifAttachments);
     }
     else
         NSLog(@"no attachments");

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

Размер изображения на данный момент как я узнал, он установлен здесь:

   AVCaptureSession *session = [[AVCaptureSession alloc] init];  
   session.sessionPreset =AVCaptureSessionPresetMedium; //medium on my iphone4 is 640*480

Но здесь возможны только несколько настроек, и их нельзя установить на пользовательский размер.

Я хотел бы, чтобы снимки имели соотношение сторон 1:1, если это возможно, например, 400x400 пикселей (квадратные изображения). Кажется, это делает инстаграм (или они обрезают изображения?).

Как я могу указать размер снимаемого изображения, чтобы оно было квадратным? Я знаю, как изменить размер на телефоне, но если снимок не квадратный, результат не очень хороший.

Есть идеи?

9
задан DixieFlatline 7 June 2012 в 00:35
поделиться