任何人都可以从iPhone 4上的iphone相机拍摄图像中恢复宽度/高度?

时间:2010-10-24 02:29:21

标签: iphone image-processing camera

我正在使用

- (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 个答案:

答案 0 :(得分:2)

你应该实现这样的东西:

- (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 :(得分:1)

自iOS 3.0起,

imagePickerController:didFinishPickingImage:editingInfo:已弃用。

尝试使用 imagePickerController:didFinishPickingMediaWithInfo: 并看看它是否有所作为。