Błąd UIImagePickerController
Myślę, że znalazłem błąd w najnowszym systemie iOS 7, uruchamiając aplikację z zestawem Base SDK ustawionym na iOS 6.1 (być może nawet niższe wersje, jeszcze tego nie testowałem)
Mam to zdjęcie w mojej bibliotece zdjęć:http://i.imgur.com/7KUIGLt.jpg
Przedstawiam kontroler UIImagePickerController za pośrednictwem:
UIImagePickerController *vc = [[UIImagePickerController alloc] init];
vc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
vc.delegate = self;
vc.allowsEditing = YES;
[self presentViewController:vc animated:YES completion:nil];
Zapisuję wybrany obraz na moim pulpicie (uruchamiam go na symulatorze, ale działa to również na urządzeniu)
- (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];
}
Oto wynikowy obraz:
Zwróć uwagę na duży czarny pasek po prawej stronie. Co to powoduje?
Aby to odtworzyć, potrzebujesz:
iOS 7Aplikacja z zestawem SDK bazowym ustawionym na 6.1 (może nawet niższe zestawy SDK, jeszcze nie próbowałem)iPhone 5 / 5c / 5sZdarza się tylko w przypadku zdjęć wykonanych aparatem iPhone 5 / 5c / 5s (do testowania można użyć oryginalnego obrazu, który powyżej umieściłem)UWAGA: Aby być jasnym, czarny pasek jest częścią rzeczywistego obrazu. Obraz, który widzisz, nie zawiera zrzutu ekranu UIImageView, ale rzeczywisty obraz zapisany na dysku i przesłany tutaj ...