Perform strip first
This commit is contained in:
parent
a1cd3d33bc
commit
df34cdf5c5
1 changed files with 6 additions and 6 deletions
12
src/lib.rs
12
src/lib.rs
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue