mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 01:16:31 +03:00
convert exif orientation to desired pixel rotation
This commit is contained in:
12
src/blob.rs
12
src/blob.rs
@@ -427,6 +427,18 @@ impl<'a> BlobObject<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_exif_orientation(&self) -> Result<i32, Error> {
|
pub fn get_exif_orientation(&self) -> Result<i32, Error> {
|
||||||
|
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)
|
Ok(0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user