diff --git a/imageflow_core/src/codecs/libpng_encoder.rs b/imageflow_core/src/codecs/libpng_encoder.rs index b0d47579c..5fdddafeb 100644 --- a/imageflow_core/src/codecs/libpng_encoder.rs +++ b/imageflow_core/src/codecs/libpng_encoder.rs @@ -48,6 +48,10 @@ impl Encoder for LibPngEncoder { bitmap.get_window_u8().unwrap() .apply_matte(color.clone()) .map_err(|e| e.at(here!()))?; + // Optimize png size + if color.is_opaque(){ + bitmap.set_alpha_meaningful(false); + } } } diff --git a/imageflow_core/src/codecs/mozjpeg.rs b/imageflow_core/src/codecs/mozjpeg.rs index 548df0f5f..1790fe125 100644 --- a/imageflow_core/src/codecs/mozjpeg.rs +++ b/imageflow_core/src/codecs/mozjpeg.rs @@ -69,6 +69,7 @@ impl Encoder for MozjpegEncoder { .apply_matte(self.matte.clone().unwrap_or( imageflow_types::Color::Srgb(imageflow_types::ColorSrgb::Hex("FFFFFFFF".to_owned())))) .map_err(|e| e.at(here!()))?; + bitmap.set_alpha_meaningful(false); let frame = unsafe{ bitmap.get_window_u8() .ok_or_else(|| nerror!(ErrorKind::InvalidBitmapType))?