iOS:自定义相机如何始终以正确的方向保存图像?

时间:2017-04-27 05:13:20

标签: ios iphone

我目前正在使用IOS实现自定义相机。我希望相机始终以正确的方向将图像保存到相册中,就像官方的iOS相机一样:无论你拿着相机的方向,你总能看到照片保存正确的方向。 我查了很多源代码,他们似乎用以下方式任意保存图像:

var image  = UIImage(cgImage: cgImageRef, scale: 1.0, orientation: UIImageOrientation.right)

但这只适用于设备正直的情况 任何人都可以提供任何建议吗?

我也试图获得方向

let uiorientation = UIApplication.shared.statusBarOrientation

但是当屏幕被锁定时,它总是返回画像。

1 个答案:

答案 0 :(得分:3)

获得UIImage对象时,必须更新图像旋转。 将从图像选取器获取的图像传递给此方法

夫特

func getNormalizedImage(rawImage: UIImage) -> UIImage {

    if (rawImage.imageOrientation == .up) {
        return rawImage
    }

    UIGraphicsBeginImageContextWithOptions(rawImage.size, false, rawImage.scale)
    rawImage.draw(in: CGRect(x:0, y:0, width:rawImage.size.width, height:rawImage.size.height))

    let normalizedImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return normalizedImage!
}

目标C

+(UIImage *)getNormalizedImage:(UIImage *)rawImage {

    if(rawImage.imageOrientation == UIImageOrientationUp)
    return rawImage;

    UIGraphicsBeginImageContextWithOptions(rawImage.size, NO, rawImage.scale);
    [rawImage drawInRect:(CGRect){0, 0, rawImage.size}];
    UIImage *normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return normalizedImage;
}