From d2320394cab526372926a07d6648ad08fe21377f Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Mon, 15 Jun 2020 01:13:11 +0200 Subject: [PATCH] convert exif orientation to desired pixel rotation --- src/blob.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/blob.rs b/src/blob.rs index 2946f882e..fbf83bae8 100644 --- a/src/blob.rs +++ b/src/blob.rs @@ -427,6 +427,18 @@ impl<'a> BlobObject<'a> { } pub fn get_exif_orientation(&self) -> Result { + let file = std::fs::File::open(self.to_abs_path())?; + let mut bufreader = std::io::BufReader::new(&file); + let exifreader = exif::Reader::new(); + let exif = exifreader.read_from_container(&mut bufreader)?; + if let Some(orientation) = exif.get_field(exif::Tag::Orientation, exif::In::PRIMARY) { + match orientation.value.get_uint(0) { + Some(3) => return Ok(180), + Some(6) => return Ok(90), + Some(8) => return Ok(270), + _ => {} + } + } Ok(0) } }