我目前正在使用IOS实现自定义相机。我希望相机始终以正确的方向将图像保存到相册中,就像官方的iOS相机一样:无论你拿着相机的方向,你总能看到照片保存正确的方向。 我查了很多源代码,他们似乎用以下方式任意保存图像:
var image = UIImage(cgImage: cgImageRef, scale: 1.0, orientation: UIImageOrientation.right)
但这只适用于设备正直的情况 任何人都可以提供任何建议吗?
我也试图获得方向
let uiorientation = UIApplication.shared.statusBarOrientation
但是当屏幕被锁定时,它总是返回画像。
答案 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!
}
+(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;
}