UIImagePickerController 返回不正确的图像方向

2023-11-23

我正在使用 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(使用前将#替换为@)

UIImagePickerController 返回不正确的图像方向 的相关文章

随机推荐