In meiner App, wenn ich den UIImagePickerController verwende, verkleinere ich das Bild aus der Auswahl, um es von der sehr großen Größe zu reduzieren, mit der es beginnt. Auf dem iPhone und iPod Touch funktioniert es gut und es gibt geringe Verzögerungen. Da der iPad-Bildschirm jedoch viel größer ist, dauert es VIEL, VIEL länger, da ich ihn nach Pixeln skaliere.Die Größenänderung von Bildern nimmt viel Zeit in Anspruch?
Dies ist mein Code:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
CGRect screenBounds = [[UIScreen mainScreen] bounds];
CGFloat screenScale = [[UIScreen mainScreen] scale];
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
UIGraphicsBeginImageContext(screenSize);
[image drawInRect:CGRectMake(0,0,screenSize.width,screenSize.height)];
newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
[currentDefaults setObject:UIImagePNGRepresentation(newImage) forKey:@"newImageKey"];
[currentDefaults synchronize];
[popoverController dismissPopoverAnimated:YES];
[picker dismissModalViewControllerAnimated:YES];
}
Gibt es eine Möglichkeit, es schneller, um die Größe oder ihm eine andere Art und Weise zu tun, damit der Benutzer nicht die Verzögerung bemerken, wenn das System die großen Bilder Ändern der Größe?
Danke!
Dank dieser Code funktionierte großartig, aber können Sie mir ein Beispiel zeigen, was Sie für Ihren zweiten Tipp bedeuten? –
Gibt es auch eine Möglichkeit, einen Rückruf für die Dispatch_async zu haben, so dass ich ein UIAlertView zeigen kann, wenn es fertig ist? –
Nevermind, fand ich Antworten auf all diese Fragen, so dass es jetzt gut funktioniert! –