Fix Image Orientation

This commit is contained in:
Joel Klabo
2023-04-04 17:59:54 -07:00
committed by William Casarin
parent bfb47c0f85
commit 196cfdec4b

View File

@@ -45,11 +45,13 @@ struct ImagePicker: UIViewControllerRepresentable {
// Handle the selected image
onImagePicked(imageURL)
} else if let cameraImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
if let imageURL = saveImageToTemporaryFolder(image: cameraImage, imageType: "jpeg") {
let orientedImage = cameraImage.fixOrientation()
if let imageURL = saveImageToTemporaryFolder(image: orientedImage, imageType: "jpeg") {
onImagePicked(imageURL)
}
} else if let editedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
if let editedImageURL = saveImageToTemporaryFolder(image: editedImage) {
let orientedImage = editedImage.fixOrientation()
if let editedImageURL = saveImageToTemporaryFolder(image: orientedImage, imageType: "jpeg") {
onImagePicked(editedImageURL)
}
}
@@ -118,3 +120,16 @@ struct ImagePicker: UIViewControllerRepresentable {
}
}
extension UIImage {
func fixOrientation() -> UIImage {
guard imageOrientation != .up else { return self }
UIGraphicsBeginImageContextWithOptions(size, false, scale)
draw(in: CGRect(origin: .zero, size: size))
let normalizedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return normalizedImage ?? self
}
}