diff --git a/.gitignore b/.gitignore index ea8c4bf..d81f12e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +/.idea diff --git a/Cargo.lock b/Cargo.lock index ee5a855..5021ff3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1668,7 +1668,7 @@ dependencies = [ [[package]] name = "mpd_info_screen" -version = "0.3.6" +version = "0.3.7" dependencies = [ "bindgen", "freetype", diff --git a/Cargo.toml b/Cargo.toml index 55a1e4f..5d40a63 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mpd_info_screen" -version = "0.3.6" +version = "0.3.7" edition = "2018" description = "Displays info on currently playing music from an MPD daemon" license = "MIT" diff --git a/src/display.rs b/src/display.rs index b151936..040c206 100644 --- a/src/display.rs +++ b/src/display.rs @@ -397,9 +397,22 @@ impl MPDDisplay { ); } - let img_result = ImageReader::with_format(Cursor::new(&image_ref), image_format) - .decode() - .map_err(|e| format!("Error: Failed to decode album art image: {}", e)); + let img_result = if is_unknown_format { + let mut reader = ImageReader::new(Cursor::new(&image_ref)); + reader = reader + .with_guessed_format() + .map_err(|e| format!("Error: Failed to guess format of album art image: {}", e))?; + reader.decode().map_err(|e| { + format!( + "Error: Failed to decode album art image (guessed format): {}", + e + ) + }) + } else { + ImageReader::with_format(Cursor::new(&image_ref), image_format) + .decode() + .map_err(|e| format!("Error: Failed to decode album art image: {}", e)) + }; if img_result.is_err() && !self.tried_album_art_in_dir { return try_second_art_fetch_method( &mut self.tried_album_art_in_dir,