【发布时间】:2013-10-24 05:46:00
【问题描述】:
我认为我在运行一个将 Base SDK 设置为 iOS 6.1 的应用程序时发现了最新 iOS 7 中的一个错误(可能还有更低的版本,还没有测试过)
我的照片库中有这张图片:http://i.imgur.com/7KUIGLt.jpg
我通过以下方式呈现一个 UIImagePickerController:
UIImagePickerController *vc = [[UIImagePickerController alloc] init];
vc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
vc.delegate = self;
vc.allowsEditing = YES;
[self presentViewController:vc animated:YES completion:nil];
我将选择的图像保存到我的桌面(我在模拟器上运行它,但它也适用于设备)
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage* outputImage = [info objectForKey:UIImagePickerControllerEditedImage];
if (outputImage == nil) {
outputImage = [info objectForKey:UIImagePickerControllerOriginalImage];
}
NSData *d = UIImagePNGRepresentation(outputImage);
[d writeToFile:@"/Users/Admin/Desktop/test.png" atomically:YES];
[self dismissViewControllerAnimated:YES completion:nil];
}
这是生成的图像:
注意右边的大黑条。这是什么原因造成的?
要重现这个,你需要:
- iOS 7
- Base SDK 设置为 6.1 的应用程序(也许更低的 SDK,我还没有尝试过)
- iPhone 5/5c/5s
- 仅适用于使用 iPhone 5/5c/5s 相机拍摄的照片(您可以使用我上面链接的原始图像进行测试)
注意:为了清楚起见,黑条是实际图像的一部分。你看到的图片不是 UIImageView 的截图,而是保存到磁盘并上传到这里的实际图片...
【问题讨论】:
-
你的来源设置为
UIImagePickerControllerSourceTypePhotoLibrary,所以看起来你并没有使用实际的相机,而是从库中获取图像。对吧? -
我在编辑过的图片和/或旋转过的图片上看到过类似的问题。以其他方向拍摄的图像是否会发生这种情况?如果您不允许编辑,会发生这种情况吗?
-
如果更改编辑矩形会发生这种情况吗?我们看到的这些问题之一只有在用户接受默认裁剪矩形时才会发生。
-
@Lefteris 是的,它仅在从库中选择图像时发生。如果它们是从应用程序中的相机拍摄的,它可以正常工作。
-
你能澄清一下吗?这里有什么问题,黑条应该在那里吗?
标签: ios objective-c cocoa-touch ios7 uiimagepickercontroller