Я думаю, что нашел ошибку в последней версии iOS 7, запустив приложение с базовым SDK, установленным в iOS 6.1 (возможно, даже более низкие версии, еще не проверил это)
У меня есть это изображение в моей библиотеке фотографий: 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
- Приложение с базовым SDK установлено на 6.1 (возможно, даже более низкие SDK тоже, я еще не пробовал)
- iPhone 5/5c/5s
- Случается только с изображениями, которые были сделаны с камерой iPhone 5/5c/5s (вы можете использовать исходное изображение, которое я связал выше для тестирования).
ПРИМЕЧАНИЕ.. Чтобы быть чистым, черная полоса является частью фактического изображения. Изображение, которое вы видите там, не является скриншотом UIImageView, но фактическое изображение, сохраненное на диске и загруженное здесь...