diff options
author | metamuffin <metamuffin@disroot.org> | 2023-09-25 17:05:49 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-09-25 17:05:49 +0200 |
commit | 31e89068a863375fced493716decde663b1fc4bd (patch) | |
tree | 494fc98d548c1940bfacbd347e312cbaad5d3706 /transcoder/src/image.rs | |
parent | d6c96ff2b631bba748f550cd136c6776fcb33906 (diff) | |
download | jellything-31e89068a863375fced493716decde663b1fc4bd.tar jellything-31e89068a863375fced493716decde663b1fc4bd.tar.bz2 jellything-31e89068a863375fced493716decde663b1fc4bd.tar.zst |
transcoder: set fallback format to avif
Diffstat (limited to 'transcoder/src/image.rs')
-rw-r--r-- | transcoder/src/image.rs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/transcoder/src/image.rs b/transcoder/src/image.rs index c28ef2b..7ae2976 100644 --- a/transcoder/src/image.rs +++ b/transcoder/src/image.rs @@ -1,6 +1,7 @@ +use anyhow::Context; use jellybase::{cache_file, AssetLocationExt}; use jellycommon::AssetLocation; -use log::info; +use log::{debug, info}; use rgb::FromSlice; use std::{ fs::File, @@ -22,9 +23,13 @@ pub fn transcode( .path(); if !path.exists() { info!("encoding {path:?} (speed={speed}, quality={quality}, width={width})"); - let reader = image::io::Reader::new(BufReader::new(File::open(original_path)?)) - .with_guessed_format()?; - let original = reader.decode()?.to_rgba8(); + // TODO shouldn't be neccessary with guessed format. + let file = BufReader::new(File::open(&original_path).context("opening source")?); + let mut reader = image::io::Reader::new(file); + reader.set_format(image::ImageFormat::Avif); + let reader = reader.with_guessed_format().context("guessing format")?; + debug!("guessed format (or fallback): {:?}", reader.format()); + let original = reader.decode().context("decoding image")?.to_rgba8(); let image = image::imageops::resize( &original, width as u32, |