: http://red-glasses.com/index.php/tutorials/ios4-take-photos-with-live-video-preview-using-avfoundation/InstagramアプリのようにavFoundationでiphoneで正方形の画像を撮る方法は?私はここのように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ピクセル(正方形の写真)です。 これはInstagramが行っているようです(または画像を切り取っていますか?)。
撮影した画像のサイズを正方形にするにはどうすればよいですか?私は電話でサイズを変更する方法を知っていますが、撮影した画像が正方形でない場合、結果は良くありません。
これが唯一の方法ですか?サイズが変更されていれば、イメージがさらに悪化すると思います。カスタムディメンションの写真を撮ってサイズを変更することはできますか? – DixieFlatline
1台のカメラで異なる次元で写真を撮ることはできません。小さな画像を使用すると、常に完全な解像度が使用され、サイズが小さくなります。 Instagramには、完全な画像から四角形を切り取ること以外の方法もありません。この例では、サイズは '400px'ですが、元の画像の幅を知ることができ、高さが同じサイズのrectを作ることができます。正方形の画像が表示され、上下のピクセルが緩やかになります。 –
画像を縮小すると、まともな補間を仮定すると、より悪くないように見えるので、恐怖は根拠がありません。 – podperson