2010-10-24 54 views
0

我使用任何人都可以从iphone相机拍摄的iPhone 4拍摄的图像上展示宽度/高度?

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

采取图像。
然后使用

 
    CGImageRef imgRef = image.CGImage; 

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

出于某种原因,宽度总是640,和身高总是480无论是纵向还是横向。

我上真的很困惑,我想在portraint,它应该是宽度320和高度为480,而在横向模式下,宽度应为480和高度应为320

我缺少什么?如何获得正确的图像宽度和高度。谢谢。

回答

1

imagePickerController:didFinishPickingImage:editingInfo:从iOS 3.0起折旧。

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

+0

的结果是一样的,图像尺寸还是640 * 480 – BlueDolphin 2010-10-24 13:35:47

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

+0

这是输出: – BlueDolphin 2010-10-24 13:11:20

+0

这是日志输出:image size = 640 x 480 orig image size = 0 x 0 Crop rect = 0.000000 0.000000 0.207944 0.000000 – BlueDolphin 2010-10-24 13:26:54

+0

您是从相机获取图像吗? – 2010-10-24 13:47:31

相关问题