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,
|
opts: &Options,
|
||||||
deadline: Arc<Deadline>,
|
deadline: Arc<Deadline>,
|
||||||
) -> PngResult<Vec<u8>> {
|
) -> PngResult<Vec<u8>> {
|
||||||
let original_png = png.clone();
|
|
||||||
|
|
||||||
// Print png info
|
// Print png info
|
||||||
let file_original_size = original_data.len();
|
let file_original_size = original_data.len();
|
||||||
let idat_original_size = png.idat_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!(" IDAT size = {} bytes", idat_original_size);
|
||||||
info!(" File size = {} bytes", file_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
|
// Must use normal (lazy) compression, as faster ones (greedy) are not representative
|
||||||
let eval_compression = 5;
|
let eval_compression = 5;
|
||||||
let eval_filters = indexset! {RowFilter::None, RowFilter::MinSum};
|
let eval_filters = indexset! {RowFilter::None, RowFilter::MinSum};
|
||||||
|
|
@ -592,14 +594,12 @@ fn optimize_png(
|
||||||
png.idat_data.len()
|
png.idat_data.len()
|
||||||
);
|
);
|
||||||
} else if eval_filter.is_some() {
|
} else if eval_filter.is_some() {
|
||||||
*png = original_png;
|
*png = stripped_png;
|
||||||
}
|
}
|
||||||
} else if png.idat_data.len() >= idat_original_size {
|
} else if png.idat_data.len() >= idat_original_size {
|
||||||
*png = original_png;
|
*png = stripped_png;
|
||||||
}
|
}
|
||||||
|
|
||||||
perform_strip(png, opts);
|
|
||||||
|
|
||||||
let output = png.output();
|
let output = png.output();
|
||||||
|
|
||||||
if idat_original_size >= png.idat_data.len() {
|
if idat_original_size >= png.idat_data.len() {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue