fix(images): pick the decoder from the bytes, not the extension
`image::open` chooses the decoder by extension, so a PNG saved as .jpg (Android screenshots, chat exports) failed thumbnails, previews, perceptual hashes, insights and face crops with "Illegal start bytes: 8950". New `file_types::open_image` sniffs the header and falls back to the extension when it's unknown; every decode site uses it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bc27aea81a
commit
b95adb4f77
5 files changed
+29
-6
No files matched your search
@@ -463,7 +463,7 @@ impl InsightGenerator {
|
||||
log::debug!("Loading image for vision model: {:?}", full_path);
|
||||
|
||||
// Open and decode the image
|
||||
let img = image::open(&full_path)
|
||||
let img = crate::file_types::open_image(&full_path)
|
||||
.map_err(|e| anyhow::anyhow!("Failed to open image file: {}", e))?;
|
||||
|
||||
let (original_width, original_height) = (img.width(), img.height());
|
||||
|
||||
Reference in new issue
Block a user