UIImagePickerController retour d'image incorrecte de l'orientation
Je suis en utilisant UIImagePickerController pour capturer une image, puis de les stocker. Cependant, lorsque j'essaie de le redimensionner, l'orientation de la valeur que je sors de cette image est incorrecte. Quand j'prendre en photo en tenant le téléphone, il me donne l'orientation de Gauche. Quelqu'un a rencontré ce problème?
La UIImagePickerController dictionnaire montre les informations suivantes:
{
UIImagePickerControllerMediaMetadata = {
DPIHeight = 72;
DPIWidth = 72;
Orientation = 3;
"{Exif}" = {
ApertureValue = "2.970853654340484";
ColorSpace = 1;
DateTimeDigitized = "2011:02:14 10:26:17";
DateTimeOriginal = "2011:02:14 10:26:17";
ExposureMode = 0;
ExposureProgram = 2;
ExposureTime = "0.06666666666666667";
FNumber = "2.8";
Flash = 32;
FocalLength = "3.85";
ISOSpeedRatings = (
125
);
MeteringMode = 1;
PixelXDimension = 2048;
PixelYDimension = 1536;
SceneType = 1;
SensingMethod = 2;
Sharpness = 1;
ShutterSpeedValue = "3.910431673351467";
SubjectArea = (
1023,
767,
614,
614
);
WhiteBalance = 0;
};
"{TIFF}" = {
DateTime = "2011:02:14 10:26:17";
Make = Apple;
Model = "iPhone 3GS";
Software = "4.2.1";
XResolution = 72;
YResolution = 72;
};
};
UIImagePickerControllerMediaType = "public.image";
UIImagePickerControllerOriginalImage = "<UIImage: 0x40efb50>";
}
Cependant l'image renvoie imageOrientation == 1
;
UIImage *picture = [info objectForKey:UIImagePickerControllerOriginalImage];
OriginalL'auteur Mustafa | 2011-02-14
Vous devez vous connecter pour publier un commentaire.
J'ai juste commencé à travailler sur cette question dans mon propre application.
J'ai utilisé le UIImage catégorie que Trevor Harmon conçu pour le redimensionnement d'une image, et la fixation de son orientation, UIImage+Redimensionner.
Ensuite, vous pouvez faire quelque chose comme cela dans
-imagePickerController:didFinishPickingMediaWithInfo:
Le problème est résolu pour moi. L'image redimensionnée est correctement orienté visuellement et le imageOrientation déclarations de biens UIImageOrientationUp.
Il existe plusieurs versions de cette échelle/recadrer/redimensionner code là-bas; j'ai utilisé de Trevor, car il semble assez propre et comprend quelques autres UIImage manipulateurs que je veux l'utiliser plus tard.
Vous pourriez regarder un plus up-to-date de la fourche de ce code maintenu par Marc Charbonneau sur GitHub. < & lt; a href="https://github.com/mbcharbonneau/UIImage-Categories" >github.com/mbcharbonneau/UIImage-Categories>
Même à l'aide de Marc de la fourche, ce n'est toujours pas corriger l'orientation.
Il renvoie toujours UIImageOrientationUp. donc, cela fonctionne seulement pour l'orientation UIImageOrientationUp, et ne fonctionnera pas pour les autres orientations.
OriginalL'auteur Bill Garrison
Ce que j'ai trouvé pour la fixation de l'orientation de la question; Fonctionne pour moi
Merci, c'fixe pour moi!
OriginalL'auteur Shekhar Gupta
Voici un rapide extrait de code qui résout le problème de manière efficace:
OriginalL'auteur Jean Le Moignan
J'utilise le code suivant que j'ai mis dans une image distincte de l'utilitaire de fichier objet qui a un tas d'autres méthodes de traitement pour UIImages:
Puis-je appeler
OriginalL'auteur Will
Dans iOS 7, j'ai besoin de code dépend de UIImage.imageOrientation pour corriger les différentes orientations. Maintenant, dans iOS 8.2, quand je récupérer mes vieilles images de test à partir de l'album via UIImagePickerController, l'orientation sera UIImageOrientationUp pour TOUTES les images. Quand je prends une photo (UIImagePickerControllerSourceTypecamera), ces images seront également toujours être à la hausse, indépendamment de l'orientation du périphérique.
Donc, entre ces versions iOS, il y a évidemment été un correctif où UIImagePickerController déjà fait pivoter les images si nécessaire.
Vous pouvez même remarquer que lorsque les images de l'album sont affichés: pour une fraction de seconde, ils seront affichés dans l'orientation d'origine, avant qu'ils apparaissent dans la nouvelle orientation à la hausse.
OriginalL'auteur Jekapa
La seule chose qui a fonctionné pour moi a été de nouveau rendu de l'image à nouveau, ce qui oblige l'orientation correcte.
OriginalL'auteur Cal S