我正在使用 UIImagePickerController 捕获图像然后存储它。然而,当我尝试重新缩放它时,我从该图像中得到的方向值是不正确的。当我举起手机拍照时,它会给我左方向。有人经历过这个问题吗?
UIImagePickerController 字典显示以下信息:
{
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>";
}
然而图片返回imageOrientation == 1
;
UIImage *picture = [info objectForKey:UIImagePickerControllerOriginalImage];
我刚刚开始在我自己的应用程序中解决这个问题。
我使用 Trevor Harmon 制作的 UIImage 类别来调整图像大小并固定其方向,UI图像+调整大小.
然后你可以做这样的事情-imagePickerController:didFinishPickingMediaWithInfo:
UIImage *pickedImage = [info objectForKey:UIImagePickerControllerEditedImage];
UIImage *resized = [pickedImage resizedImageWithContentMode:UIViewContentModeScaleAspectFit bounds:pickedImage.size interpolationQuality:kCGInterpolationHigh];
这解决了我的问题。调整大小后的图像在视觉上方向正确,并且 imageOrientation 属性报告 UIImageOrientationUp。
此缩放/调整大小/裁剪代码有多个版本;我使用 Trevor 是因为它看起来非常干净,并且包含一些我稍后想使用的其他 UIImage 操纵器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)