Add const shorthands for delta filters

This commit is contained in:
Andrew 2025-08-05 09:49:43 +12:00
parent 8c3758b9f4
commit 7f98f7c557
11 changed files with 105 additions and 176 deletions

View file

@ -13,10 +13,7 @@ fn filters_16_bits_filter_0(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::NONE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::None), false)
});
} }
#[bench] #[bench]
@ -24,10 +21,7 @@ fn filters_8_bits_filter_0(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::NONE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::None), false)
});
} }
#[bench] #[bench]
@ -37,10 +31,7 @@ fn filters_4_bits_filter_0(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::NONE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::None), false)
});
} }
#[bench] #[bench]
@ -50,10 +41,7 @@ fn filters_2_bits_filter_0(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::NONE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::None), false)
});
} }
#[bench] #[bench]
@ -63,10 +51,7 @@ fn filters_1_bits_filter_0(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::NONE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::None), false)
});
} }
#[bench] #[bench]
@ -74,10 +59,7 @@ fn filters_16_bits_filter_1(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::SUB, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Sub), false)
});
} }
#[bench] #[bench]
@ -85,10 +67,7 @@ fn filters_8_bits_filter_1(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::SUB, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Sub), false)
});
} }
#[bench] #[bench]
@ -98,10 +77,7 @@ fn filters_4_bits_filter_1(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::SUB, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Sub), false)
});
} }
#[bench] #[bench]
@ -111,10 +87,7 @@ fn filters_2_bits_filter_1(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::SUB, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Sub), false)
});
} }
#[bench] #[bench]
@ -124,10 +97,7 @@ fn filters_1_bits_filter_1(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::SUB, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Sub), false)
});
} }
#[bench] #[bench]
@ -135,10 +105,7 @@ fn filters_16_bits_filter_2(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::UP, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Up), false)
});
} }
#[bench] #[bench]
@ -146,10 +113,7 @@ fn filters_8_bits_filter_2(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::UP, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Up), false)
});
} }
#[bench] #[bench]
@ -159,10 +123,7 @@ fn filters_4_bits_filter_2(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::UP, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Up), false)
});
} }
#[bench] #[bench]
@ -172,10 +133,7 @@ fn filters_2_bits_filter_2(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::UP, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Up), false)
});
} }
#[bench] #[bench]
@ -185,10 +143,7 @@ fn filters_1_bits_filter_2(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::UP, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Up), false)
});
} }
#[bench] #[bench]
@ -196,10 +151,7 @@ fn filters_16_bits_filter_3(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::AVERAGE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Average), false)
});
} }
#[bench] #[bench]
@ -207,10 +159,7 @@ fn filters_8_bits_filter_3(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::AVERAGE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Average), false)
});
} }
#[bench] #[bench]
@ -220,10 +169,7 @@ fn filters_4_bits_filter_3(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::AVERAGE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Average), false)
});
} }
#[bench] #[bench]
@ -233,10 +179,7 @@ fn filters_2_bits_filter_3(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::AVERAGE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Average), false)
});
} }
#[bench] #[bench]
@ -246,10 +189,7 @@ fn filters_1_bits_filter_3(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::AVERAGE, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Average), false)
});
} }
#[bench] #[bench]
@ -257,10 +197,7 @@ fn filters_16_bits_filter_4(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::PAETH, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Paeth), false)
});
} }
#[bench] #[bench]
@ -268,10 +205,7 @@ fn filters_8_bits_filter_4(b: &mut Bencher) {
let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png"));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::PAETH, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Paeth), false)
});
} }
#[bench] #[bench]
@ -281,10 +215,7 @@ fn filters_4_bits_filter_4(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::PAETH, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Paeth), false)
});
} }
#[bench] #[bench]
@ -294,10 +225,7 @@ fn filters_2_bits_filter_4(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::PAETH, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Paeth), false)
});
} }
#[bench] #[bench]
@ -307,10 +235,7 @@ fn filters_1_bits_filter_4(b: &mut Bencher) {
)); ));
let png = PngData::new(&input, &Options::default()).unwrap(); let png = PngData::new(&input, &Options::default()).unwrap();
b.iter(|| { b.iter(|| png.raw.filter_image(FilterStrategy::PAETH, false));
png.raw
.filter_image(FilterStrategy::Basic(RowFilter::Paeth), false)
});
} }
#[bench] #[bench]

View file

@ -19,6 +19,14 @@ pub enum FilterStrategy {
Predefined(Vec<RowFilter>), Predefined(Vec<RowFilter>),
} }
impl FilterStrategy {
pub const NONE: Self = Self::Basic(RowFilter::None);
pub const SUB: Self = Self::Basic(RowFilter::Sub);
pub const UP: Self = Self::Basic(RowFilter::Up);
pub const AVERAGE: Self = Self::Basic(RowFilter::Average);
pub const PAETH: Self = Self::Basic(RowFilter::Paeth);
}
impl Display for FilterStrategy { impl Display for FilterStrategy {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self { match self {

View file

@ -432,7 +432,7 @@ fn optimize_raw(
opts.filter.clone() opts.filter.clone()
} else { } else {
// None and Bigrams work well together, especially for alpha reductions // None and Bigrams work well together, especially for alpha reductions
indexset! {FilterStrategy::Basic(RowFilter::None), FilterStrategy::Bigrams} indexset! {FilterStrategy::NONE, FilterStrategy::Bigrams}
}; };
// This will collect all versions of images and pick one that compresses best // This will collect all versions of images and pick one that compresses best
let eval = Evaluator::new( let eval = Evaluator::new(
@ -551,7 +551,7 @@ fn perform_trials(
filters.insert(FilterStrategy::Bigrams); filters.insert(FilterStrategy::Bigrams);
} else { } else {
// Otherwise delta filters generally don't work well, so just stick with None // Otherwise delta filters generally don't work well, so just stick with None
filters.insert(FilterStrategy::Basic(RowFilter::None)); filters.insert(FilterStrategy::NONE);
} }
} }

View file

@ -8,10 +8,7 @@ use indexmap::{IndexSet, indexset};
use log::warn; use log::warn;
use crate::{ use crate::{
deflate::Deflaters, deflate::Deflaters, filters::FilterStrategy, headers::StripChunks, interlace::Interlacing,
filters::{FilterStrategy, RowFilter},
headers::StripChunks,
interlace::Interlacing,
}; };
/// Write destination for [`optimize`][crate::optimize]. /// Write destination for [`optimize`][crate::optimize].
@ -212,7 +209,7 @@ impl Options {
fn apply_preset_3(mut self) -> Self { fn apply_preset_3(mut self) -> Self {
self.fast_evaluation = false; self.fast_evaluation = false;
self.filter = indexset! { self.filter = indexset! {
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
FilterStrategy::Bigrams, FilterStrategy::Bigrams,
FilterStrategy::BigEnt, FilterStrategy::BigEnt,
FilterStrategy::Brute FilterStrategy::Brute
@ -229,7 +226,7 @@ impl Options {
fn apply_preset_5(mut self) -> Self { fn apply_preset_5(mut self) -> Self {
self.fast_evaluation = false; self.fast_evaluation = false;
self.filter.insert(FilterStrategy::Basic(RowFilter::Up)); self.filter.insert(FilterStrategy::UP);
self.filter.insert(FilterStrategy::MinSum); self.filter.insert(FilterStrategy::MinSum);
self.filter.insert(FilterStrategy::BigEnt); self.filter.insert(FilterStrategy::BigEnt);
self.filter.insert(FilterStrategy::Brute); self.filter.insert(FilterStrategy::Brute);
@ -240,9 +237,8 @@ impl Options {
} }
fn apply_preset_6(mut self) -> Self { fn apply_preset_6(mut self) -> Self {
self.filter self.filter.insert(FilterStrategy::AVERAGE);
.insert(FilterStrategy::Basic(RowFilter::Average)); self.filter.insert(FilterStrategy::PAETH);
self.filter.insert(FilterStrategy::Basic(RowFilter::Paeth));
self.apply_preset_5() self.apply_preset_5()
} }
} }
@ -254,8 +250,8 @@ impl Default for Options {
fix_errors: false, fix_errors: false,
force: false, force: false,
filter: indexset! { filter: indexset! {
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
FilterStrategy::Entropy, FilterStrategy::Entropy,
FilterStrategy::Bigrams FilterStrategy::Bigrams
}, },

View file

@ -14,7 +14,7 @@ const RGBA: u8 = 6;
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) { fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
let options = oxipng::Options { let options = oxipng::Options {
force: true, force: true,
filter: indexset! {FilterStrategy::Basic(RowFilter::None)}, filter: indexset! {FilterStrategy::NONE},
..Default::default() ..Default::default()
}; };
(OutFile::from_path(input.with_extension("out.png")), options) (OutFile::from_path(input.with_extension("out.png")), options)
@ -65,7 +65,7 @@ fn test_it_converts(
fn filter_0_for_rgba_16() { fn filter_0_for_rgba_16() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_rgba_16.png", "tests/files/filter_0_for_rgba_16.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
RGBA, RGBA,
BitDepth::Sixteen, BitDepth::Sixteen,
RGBA, RGBA,
@ -77,7 +77,7 @@ fn filter_0_for_rgba_16() {
fn filter_1_for_rgba_16() { fn filter_1_for_rgba_16() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_rgba_16.png", "tests/files/filter_1_for_rgba_16.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
RGBA, RGBA,
BitDepth::Sixteen, BitDepth::Sixteen,
RGBA, RGBA,
@ -89,7 +89,7 @@ fn filter_1_for_rgba_16() {
fn filter_2_for_rgba_16() { fn filter_2_for_rgba_16() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_rgba_16.png", "tests/files/filter_2_for_rgba_16.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
RGBA, RGBA,
BitDepth::Sixteen, BitDepth::Sixteen,
RGBA, RGBA,
@ -101,7 +101,7 @@ fn filter_2_for_rgba_16() {
fn filter_3_for_rgba_16() { fn filter_3_for_rgba_16() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_rgba_16.png", "tests/files/filter_3_for_rgba_16.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
RGBA, RGBA,
BitDepth::Sixteen, BitDepth::Sixteen,
RGBA, RGBA,
@ -113,7 +113,7 @@ fn filter_3_for_rgba_16() {
fn filter_4_for_rgba_16() { fn filter_4_for_rgba_16() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_rgba_16.png", "tests/files/filter_4_for_rgba_16.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
RGBA, RGBA,
BitDepth::Sixteen, BitDepth::Sixteen,
RGBA, RGBA,
@ -137,7 +137,7 @@ fn filter_5_for_rgba_16() {
fn filter_0_for_rgba_8() { fn filter_0_for_rgba_8() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_rgba_8.png", "tests/files/filter_0_for_rgba_8.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
RGBA, RGBA,
BitDepth::Eight, BitDepth::Eight,
RGBA, RGBA,
@ -149,7 +149,7 @@ fn filter_0_for_rgba_8() {
fn filter_1_for_rgba_8() { fn filter_1_for_rgba_8() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_rgba_8.png", "tests/files/filter_1_for_rgba_8.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
RGBA, RGBA,
BitDepth::Eight, BitDepth::Eight,
RGBA, RGBA,
@ -161,7 +161,7 @@ fn filter_1_for_rgba_8() {
fn filter_2_for_rgba_8() { fn filter_2_for_rgba_8() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_rgba_8.png", "tests/files/filter_2_for_rgba_8.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
RGBA, RGBA,
BitDepth::Eight, BitDepth::Eight,
RGBA, RGBA,
@ -173,7 +173,7 @@ fn filter_2_for_rgba_8() {
fn filter_3_for_rgba_8() { fn filter_3_for_rgba_8() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_rgba_8.png", "tests/files/filter_3_for_rgba_8.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
RGBA, RGBA,
BitDepth::Eight, BitDepth::Eight,
RGBA, RGBA,
@ -185,7 +185,7 @@ fn filter_3_for_rgba_8() {
fn filter_4_for_rgba_8() { fn filter_4_for_rgba_8() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_rgba_8.png", "tests/files/filter_4_for_rgba_8.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
RGBA, RGBA,
BitDepth::Eight, BitDepth::Eight,
RGBA, RGBA,
@ -209,7 +209,7 @@ fn filter_5_for_rgba_8() {
fn filter_0_for_rgb_16() { fn filter_0_for_rgb_16() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_rgb_16.png", "tests/files/filter_0_for_rgb_16.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
RGB, RGB,
BitDepth::Sixteen, BitDepth::Sixteen,
RGB, RGB,
@ -221,7 +221,7 @@ fn filter_0_for_rgb_16() {
fn filter_1_for_rgb_16() { fn filter_1_for_rgb_16() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_rgb_16.png", "tests/files/filter_1_for_rgb_16.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
RGB, RGB,
BitDepth::Sixteen, BitDepth::Sixteen,
RGB, RGB,
@ -233,7 +233,7 @@ fn filter_1_for_rgb_16() {
fn filter_2_for_rgb_16() { fn filter_2_for_rgb_16() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_rgb_16.png", "tests/files/filter_2_for_rgb_16.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
RGB, RGB,
BitDepth::Sixteen, BitDepth::Sixteen,
RGB, RGB,
@ -245,7 +245,7 @@ fn filter_2_for_rgb_16() {
fn filter_3_for_rgb_16() { fn filter_3_for_rgb_16() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_rgb_16.png", "tests/files/filter_3_for_rgb_16.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
RGB, RGB,
BitDepth::Sixteen, BitDepth::Sixteen,
RGB, RGB,
@ -257,7 +257,7 @@ fn filter_3_for_rgb_16() {
fn filter_4_for_rgb_16() { fn filter_4_for_rgb_16() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_rgb_16.png", "tests/files/filter_4_for_rgb_16.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
RGB, RGB,
BitDepth::Sixteen, BitDepth::Sixteen,
RGB, RGB,
@ -281,7 +281,7 @@ fn filter_5_for_rgb_16() {
fn filter_0_for_rgb_8() { fn filter_0_for_rgb_8() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_rgb_8.png", "tests/files/filter_0_for_rgb_8.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
RGB, RGB,
BitDepth::Eight, BitDepth::Eight,
RGB, RGB,
@ -293,7 +293,7 @@ fn filter_0_for_rgb_8() {
fn filter_1_for_rgb_8() { fn filter_1_for_rgb_8() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_rgb_8.png", "tests/files/filter_1_for_rgb_8.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
RGB, RGB,
BitDepth::Eight, BitDepth::Eight,
RGB, RGB,
@ -305,7 +305,7 @@ fn filter_1_for_rgb_8() {
fn filter_2_for_rgb_8() { fn filter_2_for_rgb_8() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_rgb_8.png", "tests/files/filter_2_for_rgb_8.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
RGB, RGB,
BitDepth::Eight, BitDepth::Eight,
RGB, RGB,
@ -317,7 +317,7 @@ fn filter_2_for_rgb_8() {
fn filter_3_for_rgb_8() { fn filter_3_for_rgb_8() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_rgb_8.png", "tests/files/filter_3_for_rgb_8.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
RGB, RGB,
BitDepth::Eight, BitDepth::Eight,
RGB, RGB,
@ -329,7 +329,7 @@ fn filter_3_for_rgb_8() {
fn filter_4_for_rgb_8() { fn filter_4_for_rgb_8() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_rgb_8.png", "tests/files/filter_4_for_rgb_8.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
RGB, RGB,
BitDepth::Eight, BitDepth::Eight,
RGB, RGB,
@ -353,7 +353,7 @@ fn filter_5_for_rgb_8() {
fn filter_0_for_grayscale_alpha_16() { fn filter_0_for_grayscale_alpha_16() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_grayscale_alpha_16.png", "tests/files/filter_0_for_grayscale_alpha_16.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -365,7 +365,7 @@ fn filter_0_for_grayscale_alpha_16() {
fn filter_1_for_grayscale_alpha_16() { fn filter_1_for_grayscale_alpha_16() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_grayscale_alpha_16.png", "tests/files/filter_1_for_grayscale_alpha_16.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -377,7 +377,7 @@ fn filter_1_for_grayscale_alpha_16() {
fn filter_2_for_grayscale_alpha_16() { fn filter_2_for_grayscale_alpha_16() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_grayscale_alpha_16.png", "tests/files/filter_2_for_grayscale_alpha_16.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -389,7 +389,7 @@ fn filter_2_for_grayscale_alpha_16() {
fn filter_3_for_grayscale_alpha_16() { fn filter_3_for_grayscale_alpha_16() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_grayscale_alpha_16.png", "tests/files/filter_3_for_grayscale_alpha_16.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -401,7 +401,7 @@ fn filter_3_for_grayscale_alpha_16() {
fn filter_4_for_grayscale_alpha_16() { fn filter_4_for_grayscale_alpha_16() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_grayscale_alpha_16.png", "tests/files/filter_4_for_grayscale_alpha_16.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -425,7 +425,7 @@ fn filter_5_for_grayscale_alpha_16() {
fn filter_0_for_grayscale_alpha_8() { fn filter_0_for_grayscale_alpha_8() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_grayscale_alpha_8.png", "tests/files/filter_0_for_grayscale_alpha_8.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -437,7 +437,7 @@ fn filter_0_for_grayscale_alpha_8() {
fn filter_1_for_grayscale_alpha_8() { fn filter_1_for_grayscale_alpha_8() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_grayscale_alpha_8.png", "tests/files/filter_1_for_grayscale_alpha_8.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -449,7 +449,7 @@ fn filter_1_for_grayscale_alpha_8() {
fn filter_2_for_grayscale_alpha_8() { fn filter_2_for_grayscale_alpha_8() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_grayscale_alpha_8.png", "tests/files/filter_2_for_grayscale_alpha_8.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -461,7 +461,7 @@ fn filter_2_for_grayscale_alpha_8() {
fn filter_3_for_grayscale_alpha_8() { fn filter_3_for_grayscale_alpha_8() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_grayscale_alpha_8.png", "tests/files/filter_3_for_grayscale_alpha_8.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -473,7 +473,7 @@ fn filter_3_for_grayscale_alpha_8() {
fn filter_4_for_grayscale_alpha_8() { fn filter_4_for_grayscale_alpha_8() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_grayscale_alpha_8.png", "tests/files/filter_4_for_grayscale_alpha_8.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE_ALPHA, GRAYSCALE_ALPHA,
@ -497,7 +497,7 @@ fn filter_5_for_grayscale_alpha_8() {
fn filter_0_for_grayscale_16() { fn filter_0_for_grayscale_16() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_grayscale_16.png", "tests/files/filter_0_for_grayscale_16.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
GRAYSCALE, GRAYSCALE,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE, GRAYSCALE,
@ -509,7 +509,7 @@ fn filter_0_for_grayscale_16() {
fn filter_1_for_grayscale_16() { fn filter_1_for_grayscale_16() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_grayscale_16.png", "tests/files/filter_1_for_grayscale_16.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
GRAYSCALE, GRAYSCALE,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE, GRAYSCALE,
@ -521,7 +521,7 @@ fn filter_1_for_grayscale_16() {
fn filter_2_for_grayscale_16() { fn filter_2_for_grayscale_16() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_grayscale_16.png", "tests/files/filter_2_for_grayscale_16.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
GRAYSCALE, GRAYSCALE,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE, GRAYSCALE,
@ -533,7 +533,7 @@ fn filter_2_for_grayscale_16() {
fn filter_3_for_grayscale_16() { fn filter_3_for_grayscale_16() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_grayscale_16.png", "tests/files/filter_3_for_grayscale_16.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
GRAYSCALE, GRAYSCALE,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE, GRAYSCALE,
@ -545,7 +545,7 @@ fn filter_3_for_grayscale_16() {
fn filter_4_for_grayscale_16() { fn filter_4_for_grayscale_16() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_grayscale_16.png", "tests/files/filter_4_for_grayscale_16.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
GRAYSCALE, GRAYSCALE,
BitDepth::Sixteen, BitDepth::Sixteen,
GRAYSCALE, GRAYSCALE,
@ -569,7 +569,7 @@ fn filter_5_for_grayscale_16() {
fn filter_0_for_grayscale_8() { fn filter_0_for_grayscale_8() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_grayscale_8.png", "tests/files/filter_0_for_grayscale_8.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
GRAYSCALE, GRAYSCALE,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE, GRAYSCALE,
@ -581,7 +581,7 @@ fn filter_0_for_grayscale_8() {
fn filter_1_for_grayscale_8() { fn filter_1_for_grayscale_8() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_grayscale_8.png", "tests/files/filter_1_for_grayscale_8.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
GRAYSCALE, GRAYSCALE,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE, GRAYSCALE,
@ -593,7 +593,7 @@ fn filter_1_for_grayscale_8() {
fn filter_2_for_grayscale_8() { fn filter_2_for_grayscale_8() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_grayscale_8.png", "tests/files/filter_2_for_grayscale_8.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
GRAYSCALE, GRAYSCALE,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE, GRAYSCALE,
@ -605,7 +605,7 @@ fn filter_2_for_grayscale_8() {
fn filter_3_for_grayscale_8() { fn filter_3_for_grayscale_8() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_grayscale_8.png", "tests/files/filter_3_for_grayscale_8.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
GRAYSCALE, GRAYSCALE,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE, GRAYSCALE,
@ -617,7 +617,7 @@ fn filter_3_for_grayscale_8() {
fn filter_4_for_grayscale_8() { fn filter_4_for_grayscale_8() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_grayscale_8.png", "tests/files/filter_4_for_grayscale_8.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
GRAYSCALE, GRAYSCALE,
BitDepth::Eight, BitDepth::Eight,
GRAYSCALE, GRAYSCALE,
@ -641,7 +641,7 @@ fn filter_5_for_grayscale_8() {
fn filter_0_for_palette_4() { fn filter_0_for_palette_4() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_palette_4.png", "tests/files/filter_0_for_palette_4.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
INDEXED, INDEXED,
BitDepth::Four, BitDepth::Four,
INDEXED, INDEXED,
@ -653,7 +653,7 @@ fn filter_0_for_palette_4() {
fn filter_1_for_palette_4() { fn filter_1_for_palette_4() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_palette_4.png", "tests/files/filter_1_for_palette_4.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
INDEXED, INDEXED,
BitDepth::Four, BitDepth::Four,
INDEXED, INDEXED,
@ -665,7 +665,7 @@ fn filter_1_for_palette_4() {
fn filter_2_for_palette_4() { fn filter_2_for_palette_4() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_palette_4.png", "tests/files/filter_2_for_palette_4.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
INDEXED, INDEXED,
BitDepth::Four, BitDepth::Four,
INDEXED, INDEXED,
@ -677,7 +677,7 @@ fn filter_2_for_palette_4() {
fn filter_3_for_palette_4() { fn filter_3_for_palette_4() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_palette_4.png", "tests/files/filter_3_for_palette_4.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
INDEXED, INDEXED,
BitDepth::Four, BitDepth::Four,
INDEXED, INDEXED,
@ -689,7 +689,7 @@ fn filter_3_for_palette_4() {
fn filter_4_for_palette_4() { fn filter_4_for_palette_4() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_palette_4.png", "tests/files/filter_4_for_palette_4.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
INDEXED, INDEXED,
BitDepth::Four, BitDepth::Four,
INDEXED, INDEXED,
@ -713,7 +713,7 @@ fn filter_5_for_palette_4() {
fn filter_0_for_palette_2() { fn filter_0_for_palette_2() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_palette_2.png", "tests/files/filter_0_for_palette_2.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
INDEXED, INDEXED,
BitDepth::Two, BitDepth::Two,
INDEXED, INDEXED,
@ -725,7 +725,7 @@ fn filter_0_for_palette_2() {
fn filter_1_for_palette_2() { fn filter_1_for_palette_2() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_palette_2.png", "tests/files/filter_1_for_palette_2.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
INDEXED, INDEXED,
BitDepth::Two, BitDepth::Two,
INDEXED, INDEXED,
@ -737,7 +737,7 @@ fn filter_1_for_palette_2() {
fn filter_2_for_palette_2() { fn filter_2_for_palette_2() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_palette_2.png", "tests/files/filter_2_for_palette_2.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
INDEXED, INDEXED,
BitDepth::Two, BitDepth::Two,
INDEXED, INDEXED,
@ -749,7 +749,7 @@ fn filter_2_for_palette_2() {
fn filter_3_for_palette_2() { fn filter_3_for_palette_2() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_palette_2.png", "tests/files/filter_3_for_palette_2.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
INDEXED, INDEXED,
BitDepth::Two, BitDepth::Two,
INDEXED, INDEXED,
@ -761,7 +761,7 @@ fn filter_3_for_palette_2() {
fn filter_4_for_palette_2() { fn filter_4_for_palette_2() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_palette_2.png", "tests/files/filter_4_for_palette_2.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
INDEXED, INDEXED,
BitDepth::Two, BitDepth::Two,
INDEXED, INDEXED,
@ -785,7 +785,7 @@ fn filter_5_for_palette_2() {
fn filter_0_for_palette_1() { fn filter_0_for_palette_1() {
test_it_converts( test_it_converts(
"tests/files/filter_0_for_palette_1.png", "tests/files/filter_0_for_palette_1.png",
FilterStrategy::Basic(RowFilter::None), FilterStrategy::NONE,
INDEXED, INDEXED,
BitDepth::One, BitDepth::One,
INDEXED, INDEXED,
@ -797,7 +797,7 @@ fn filter_0_for_palette_1() {
fn filter_1_for_palette_1() { fn filter_1_for_palette_1() {
test_it_converts( test_it_converts(
"tests/files/filter_1_for_palette_1.png", "tests/files/filter_1_for_palette_1.png",
FilterStrategy::Basic(RowFilter::Sub), FilterStrategy::SUB,
INDEXED, INDEXED,
BitDepth::One, BitDepth::One,
INDEXED, INDEXED,
@ -809,7 +809,7 @@ fn filter_1_for_palette_1() {
fn filter_2_for_palette_1() { fn filter_2_for_palette_1() {
test_it_converts( test_it_converts(
"tests/files/filter_2_for_palette_1.png", "tests/files/filter_2_for_palette_1.png",
FilterStrategy::Basic(RowFilter::Up), FilterStrategy::UP,
INDEXED, INDEXED,
BitDepth::One, BitDepth::One,
INDEXED, INDEXED,
@ -821,7 +821,7 @@ fn filter_2_for_palette_1() {
fn filter_3_for_palette_1() { fn filter_3_for_palette_1() {
test_it_converts( test_it_converts(
"tests/files/filter_3_for_palette_1.png", "tests/files/filter_3_for_palette_1.png",
FilterStrategy::Basic(RowFilter::Average), FilterStrategy::AVERAGE,
INDEXED, INDEXED,
BitDepth::One, BitDepth::One,
INDEXED, INDEXED,
@ -833,7 +833,7 @@ fn filter_3_for_palette_1() {
fn filter_4_for_palette_1() { fn filter_4_for_palette_1() {
test_it_converts( test_it_converts(
"tests/files/filter_4_for_palette_1.png", "tests/files/filter_4_for_palette_1.png",
FilterStrategy::Basic(RowFilter::Paeth), FilterStrategy::PAETH,
INDEXED, INDEXED,
BitDepth::One, BitDepth::One,
INDEXED, INDEXED,

View file

@ -16,7 +16,7 @@ fn get_opts(input: &Path) -> (OutFile, Options) {
let options = Options { let options = Options {
force: true, force: true,
fast_evaluation: false, fast_evaluation: false,
filter: indexset! {FilterStrategy::Basic(RowFilter::None)}, filter: indexset! {FilterStrategy::NONE},
..Default::default() ..Default::default()
}; };
(OutFile::from_path(input.with_extension("out.png")), options) (OutFile::from_path(input.with_extension("out.png")), options)
@ -409,7 +409,7 @@ fn interlaced_0_to_1_other_filter_mode() {
let input = PathBuf::from("tests/files/interlaced_0_to_1_other_filter_mode.png"); let input = PathBuf::from("tests/files/interlaced_0_to_1_other_filter_mode.png");
let (output, mut opts) = get_opts(&input); let (output, mut opts) = get_opts(&input);
opts.interlace = Some(Interlacing::Adam7); opts.interlace = Some(Interlacing::Adam7);
opts.filter = indexset! {FilterStrategy::Basic(RowFilter::Paeth)}; opts.filter = indexset! {FilterStrategy::PAETH};
test_it_converts_callbacks( test_it_converts_callbacks(
input, input,

View file

@ -15,7 +15,7 @@ fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
let options = oxipng::Options { let options = oxipng::Options {
force: true, force: true,
fast_evaluation: false, fast_evaluation: false,
filter: indexset! {FilterStrategy::Basic(RowFilter::None)}, filter: indexset! {FilterStrategy::NONE},
interlace: None, interlace: None,
..Default::default() ..Default::default()
}; };

View file

@ -11,7 +11,7 @@ const INDEXED: u8 = 3;
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) { fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
let options = oxipng::Options { let options = oxipng::Options {
force: true, force: true,
filter: indexset! {FilterStrategy::Basic(RowFilter::None)}, filter: indexset! {FilterStrategy::NONE},
..Default::default() ..Default::default()
}; };
(OutFile::from_path(input.with_extension("out.png")), options) (OutFile::from_path(input.with_extension("out.png")), options)

View file

@ -5,7 +5,7 @@ use oxipng::{internal_tests::*, *};
fn get_opts() -> Options { fn get_opts() -> Options {
Options { Options {
force: true, force: true,
filter: indexset! {FilterStrategy::Basic(RowFilter::None)}, filter: indexset! {FilterStrategy::NONE},
..Default::default() ..Default::default()
} }
} }

View file

@ -15,7 +15,7 @@ fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
let options = oxipng::Options { let options = oxipng::Options {
force: true, force: true,
fast_evaluation: false, fast_evaluation: false,
filter: indexset! {FilterStrategy::Basic(RowFilter::None)}, filter: indexset! {FilterStrategy::NONE},
..Default::default() ..Default::default()
}; };
(OutFile::from_path(input.with_extension("out.png")), options) (OutFile::from_path(input.with_extension("out.png")), options)

View file

@ -14,7 +14,7 @@ const RGBA: u8 = 6;
fn get_opts(input: &Path) -> (OutFile, oxipng::Options) { fn get_opts(input: &Path) -> (OutFile, oxipng::Options) {
let options = oxipng::Options { let options = oxipng::Options {
force: true, force: true,
filter: indexset! {FilterStrategy::Basic(RowFilter::None)}, filter: indexset! {FilterStrategy::NONE},
..Default::default() ..Default::default()
}; };
(OutFile::from_path(input.with_extension("out.png")), options) (OutFile::from_path(input.with_extension("out.png")), options)