, warum Sie nicht Bild mit 8MP Kamera erfassen und dann vor dem Speichern Bild seine Größe WRT 5MP Auflösung Verfahren folgende Verwendung ändern
+ (UIImage*)imageWithImage:(UIImage*)image
scaledToSize:(CGSize)newSize
{
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Rufen Sie die obige Methode in imagePickerDidFinishMediaWithInfoMethod auf, bevor Sie das erfasste Bild speichern. Die obige Methode gibt Ihnen ein Uiimage mit geänderter Größe zurück (das Sie als CGSize angeben müssen).
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage * tempImage =[info objectForKey:UIImagePickerControllerOriginalImage];
CGSize mSize;
mSize = CGSizeMake(your width and height as per 5MP mode);
tempImage = [ViewController imageWithImage:tempImage scaledToSize:mSize];
// use this temp img as it would be in dimensions of 5MP image.
}
Ihre Lösung ist sehr hilfreich. Es ist nützlich, UIImage auf dem Bildschirm mit benutzerdefinierter Auflösung zu erhalten. Ich versuche, das Bild im YUV420SP-Format zu erfassen. Gibt es eine Möglichkeit, YUV420 mit einer benutzerdefinierten Auflösung zu erfassen? –
Wenn ich richtig unterstoppe, ändern wir in der von Ihnen angegebenen Lösung die Größe von UIImage mithilfe von Core-Grafik-APIs, um eine benutzerdefinierte Auflösung zu erhalten. Korrigiere mich, wenn mein Verständnis falsch ist. –