From 238e9f918be385e4f49adb3e7e919f6277da2e52 Mon Sep 17 00:00:00 2001 From: Andrew Date: Sun, 19 Nov 2023 08:02:08 +1300 Subject: [PATCH] If only one filter selected use it for evaluations --- src/lib.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index bebae8a0..35b7489d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -47,7 +47,7 @@ pub use crate::error::PngError; pub use crate::filters::RowFilter; pub use crate::headers::StripChunks; pub use crate::interlace::Interlacing; -pub use crate::options::{Options, OutFile, InFile}; +pub use crate::options::{InFile, Options, OutFile}; pub use indexmap::{indexset, IndexSet}; pub use rgb::{RGB16, RGBA8}; @@ -419,8 +419,13 @@ fn optimize_raw( } _ => 8, }; - // None and Bigrams work well together, especially for alpha reductions - let eval_filters = indexset! {RowFilter::None, RowFilter::Bigrams}; + // If only one filter is selected, use this for evaluations + let eval_filters = if opts.filter.len() == 1 { + opts.filter.clone() + } else { + // None and Bigrams work well together, especially for alpha reductions + indexset! {RowFilter::None, RowFilter::Bigrams} + }; // This will collect all versions of images and pick one that compresses best let eval = Evaluator::new( deadline.clone(),