Aktualisierung:
Mit iPhone OS 3.0+ hat sich die gesamte UIImagePickerController-API geändert. Diese Frage und Antwort sollte in Betracht gezogen werden 2.2. Legacy-Code.
Wenn Sie den UIImagePickerController verwenden und das Bearbeiten des Bildes erlauben. Das iPhone ermöglicht dem Benutzer die Größe und das Schwenken des Bildes. Die maximale Größe eines bearbeiteten Bilds ist jedoch auf 320 x 320 begrenzt.
Als Beispiel habe ich einen iPhone-Screenshot gemacht und ihn in die Fotobibliothek gestellt, was ein 480x320 png ist. Wenn ich ein UIImagePickerController verwende, um dieses Bild auszuwählen, wird es, selbst wenn ich das Bild NICHT skaliert oder schwenkt, auf 320 x 320 abgeschnitten, bevor es von UIImagePickerController zurückgegeben wird. Wenn ich den Bearbeitungsmodus jedoch deaktiviere, wird das Bild mit der richtigen Größe 480x320 zurückgegeben.
Meine Theorie: Sehr subtil zeigt das iPhone 2 nichtstandardisierte transluzente Werkzeugleisten an, die über dem Bild liegen. Diese Symbolleisten hinterlassen ein harmloses 320x320 "Fenster" über dem Foto. Es scheint mir, dass dieses Fenster effektiv das darunterliegende Foto schneidet.
Hinweis: Der Callback gibt auch ein Editierwörterbuch mit dem Originalbild und dem Clipping-Rect zurück, aber natürlich ist das Rect auch maximal 320x320.
Haben Sie Ideen, wie Sie Bilder, die größer als 320x320 sind, skalieren und verschieben können?
Irgendein Code:
%Vor%Wie Craig gesagt hat, ist dies ein Problem in den Foren und Diskussionsforen der Entwicklerforen und Äpfel. Ich habe jedoch einen Weg gefunden. Ich benutze ein bisschen Code von:
Dies beinhaltet das meiste von dem, was Sie brauchen, und kümmert sich um alle Probleme mit der Kameraausrichtung. Ich habe die folgenden hinzugefügt, die die Bearbeitungsinformationen aufnehmen und verwenden, um die ursprüngliche Zuschneidung mit diesem Zusatz zu korrigieren:
%Vor%Ich habe die Call-Back-Methode aus dem Dev-Forums-Post folgendermaßen aktualisiert:
%Vor%Ich muss zu spät sein, um diese Frage zu beantworten, aber ich habe einen besseren Weg, diese Arbeit zu erledigen.
%Vor%Es schneidet nur das Originalbild mit dem relativen CropRect ab, obwohl diese Methode das Bild nicht skaliert, aber es ist kurz und süß für mich. Nur als Referenz:)
Mit iPhone OS 3.0+, das Ganze UIImagePickerController API hat geändert. Diese Frage und Antwort sollte in Betracht gezogen werden 2.2. Legacy-Code.
Trotz Eurer Warnung brauchte ich eine wertvolle Entwicklungsstunde, um zu realisieren, dass iOS 3.0+ uns UIImagePickerControllerEditedImage gegeben hat, was den manuellen Beschneidungsvorgang für das Pinch / Zoom des Benutzers und den Umgang mit der Ausrichtung unnötig macht.
Dies ist für den Fall, dass jemand noch UIImagePickerControllerOriginalImage verwendet und versucht herauszufinden, wie man das Zuschneiden am besten über UIImagePickerControllerCropRect usw. anwendet. Wird nicht mehr benötigt.
Dies scheint ein Hindernis für das SDK zu sein, zumindest wenn die Einstellung "allowsImageEditing" auf der Bildauswahl auf TRUE gesetzt wird. Es gibt ein paar Diskussionen zu diesem Thema in den Apple Foren hier:
Besser spät als nie: Hier ist die Quelle für die Funktion orientationTransformForImage
Ich habe eine Kategorie für UIImage geschrieben, die eine Vollbildauflösung bietet. Der einfachste Weg zur Installation ist mit CocoaPods , indem Sie UIImage-ImagePickerCrop zu Ihrer Poddatei hinzufügen.
%Vor%Tags und Links iphone cocoa-touch uiimagepickercontroller