Skip to content

Commit

Permalink
fix: convert images to RGB8 (without alpha) before encoding into JPEG
Browse files Browse the repository at this point in the history
Otherwise an error
"The encoder or decoder for Jpeg does not support the color type `Rgba8`"
is returned if image has an alpha channel.

This is caused by the recent change of JPEG encoder
in `image` crate: <image-rs/image#2211>
  • Loading branch information
link2xt authored and hagenest committed Apr 30, 2024
1 parent 23619c4 commit bb8ad01
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/blob.rs
Expand Up @@ -698,7 +698,10 @@ fn encode_img(
ImageOutputFormat::Png => img.write_to(&mut buf, ImageFormat::Png)?,
ImageOutputFormat::Jpeg { quality } => {
let encoder = JpegEncoder::new_with_quality(&mut buf, quality);
img.write_with_encoder(encoder)?;
// Convert image into RGB8 to avoid the error
// "The encoder or decoder for Jpeg does not support the color type Rgba8"
// (<https://github.com/image-rs/image/issues/2211>).
img.clone().into_rgb8().write_with_encoder(encoder)?;
}
}
Ok(())
Expand Down

0 comments on commit bb8ad01

Please sign in to comment.