更新:
在 iPhone OS 3.0+ 中,整个 UIImagePickerController API 发生了变化。这个问题和答案应该考虑2.2。遗留代码。
当使用 UIImagePickerController 并且您允许编辑图像时。iPhone 允许用户调整和平移图像。但是,已编辑图像的最大尺寸上限为 320x320。
例如,我截取了一张 iPhone 屏幕截图并将其放入照片库中,即 480x320 png。当我使用 UIImagePickerController 选择该图像时,即使我不缩放或平移图像,它也会在从 UIImagePickerController 返回之前被裁剪为 320x320。但是,如果我关闭编辑,图像将返回正确的 480x320 尺寸。
我的理论:非常巧妙的是,iPhone 显示了 2 个覆盖在图像上的非标准半透明工具栏。这些工具栏在照片上留下一个无害的 320x320“窗口”。在我看来,这个窗口有效地剪辑了底层照片。
注意:回调还返回一个带有原始图像和剪辑矩形的编辑字典,但当然矩形也是最大 320x320。
关于如何允许缩放和平移大于 320x320 的图像的任何想法?
一些代码:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
self.myImageView.userInteractionEnabled=YES;
CGRect imageFrame = myImageView.frame;
CGPoint imageCenter = myImageView.center;
imageFrame.size = img.size;
myImageView.frame = imageFrame;
self.myImageView.image = img;
myImageView.center = imageCenter;
[self dismissModalViewControllerAnimated:YES];
[self performSelector:@selector(hideToolBars) withObject:nil afterDelay:2.0];
}