我正在使用
- (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.
我错过了什么?如何获得正确的图像宽度和高度。感谢。
答案 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)
imagePickerController:didFinishPickingImage:editingInfo:
已弃用。
尝试使用
imagePickerController:didFinishPickingMediaWithInfo:
并看看它是否有所作为。