Кто-нибудь может объяснить ширину / высоту изображения, снятого с камеры iphone на iPhone 4? - PullRequest
0 голосов
/ 24 октября 2010

Я использую

- (void)imagePickerController:(UIImagePickerController *)picker 
  didFinishPickingImage:(UIImage *)image
      editingInfo:(NSDictionary *)editingInfo

, чтобы сделать снимок.
Затем используйте

  CGImageRef imgRef = image.CGImage;

 CGFloat width = CGImageGetWidth(imgRef);
 CGFloat height = CGImageGetHeight(imgRef);

. По какой-то причине ширина всегда 640, а высота всегда 480. Независимо от того, книжный или альбомный.

Я действительно запутался в этом, я думал, что в портретном изображении, это должна быть ширина 320 и высота 480, в то время как в альбомном режиме ширина должна быть 480, а высота должна быть 320.

Что такоеЯ скучаю?Как получить правильную ширину и высоту изображения.Спасибо.

Ответы [ 2 ]

2 голосов
/ 24 октября 2010

Вы должны реализовать что-то вроде этого:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
    CGImageRef ref = image.CGImage;
    int width = CGImageGetWidth(ref);
    int height = CGImageGetHeight(ref);
    NSLog(@"image size = %d x %d", width, height);

    UIImage *orig = [editingInfo objectForKey:UIImagePickerControllerOriginalImage];
    ref = orig.CGImage;
    width = CGImageGetWidth(ref);
    height = CGImageGetHeight(ref);
    NSLog(@"orig image size = %d x %d", width, height);

    CGRect origRect;
    [[editingInfo objectForKey:UIImagePickerControllerCropRect] getValue:&origRect];

    NSLog(@"Crop rect = %f %f %f %f", origRect.origin.x, origRect.origin.y, origRect.size.width, origRect.size.height);
}

Подробнее см.: http://discussions.apple.com/thread.jspa?messageID=7841245&tstart=0

1 голос
/ 24 октября 2010

imagePickerController:didFinishPickingImage:editingInfo: устарела с iOS 3.0.

Попробуйте использовать imagePickerController:didFinishPickingMediaWithInfo: и посмотрите, имеет ли это значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...