Perform strip first

This commit is contained in:
Andrew 2022-11-28 19:24:51 +13:00
parent a1cd3d33bc
commit df34cdf5c5

View file

@ -455,8 +455,6 @@ fn optimize_png(
opts: &Options,
deadline: Arc<Deadline>,
) -> PngResult<Vec<u8>> {
let original_png = png.clone();
// Print png info
let file_original_size = original_data.len();
let idat_original_size = png.idat_data.len();
@ -481,6 +479,10 @@ fn optimize_png(
info!(" IDAT size = {} bytes", idat_original_size);
info!(" File size = {} bytes", file_original_size);
// Do this first so that reductions can ignore certain chunks such as bKGD
perform_strip(png, opts);
let stripped_png = png.clone();
// Must use normal (lazy) compression, as faster ones (greedy) are not representative
let eval_compression = 5;
let eval_filters = indexset! {RowFilter::None, RowFilter::MinSum};
@ -592,14 +594,12 @@ fn optimize_png(
png.idat_data.len()
);
} else if eval_filter.is_some() {
*png = original_png;
*png = stripped_png;
}
} else if png.idat_data.len() >= idat_original_size {
*png = original_png;
*png = stripped_png;
}
perform_strip(png, opts);
let output = png.output();
if idat_original_size >= png.idat_data.len() {