Merge branch 'master' into filter

This commit is contained in:
Josh Holmer 2021-06-16 17:38:19 -04:00 committed by GitHub
commit f8168e6f6e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 1 deletions

View file

@ -78,7 +78,12 @@ parallel = ["rayon", "indexmap/rayon"]
[lib] [lib]
name = "oxipng" name = "oxipng"
path = "src/lib.rs" path = "src/lib.rs"
[profile.dev] [profile.dev]
opt-level = 2 opt-level = 2
[profile.release] [profile.release]
lto = "thin" lto = "thin"
[profile.dev.package.bit-vec]
opt-level = 3

View file

@ -75,7 +75,6 @@ pub fn reduce_bit_depth(png: &PngImage, minimum_bits: usize) -> Option<PngImage>
#[must_use] #[must_use]
pub fn reduce_bit_depth_8_or_less(png: &PngImage, mut minimum_bits: usize) -> Option<PngImage> { pub fn reduce_bit_depth_8_or_less(png: &PngImage, mut minimum_bits: usize) -> Option<PngImage> {
assert!((1..8).contains(&minimum_bits)); assert!((1..8).contains(&minimum_bits));
let mut reduced = BitVec::with_capacity(png.data.len() * 8);
let bit_depth: usize = png.ihdr.bit_depth.as_u8() as usize; let bit_depth: usize = png.ihdr.bit_depth.as_u8() as usize;
if minimum_bits >= bit_depth { if minimum_bits >= bit_depth {
return None; return None;
@ -130,6 +129,7 @@ pub fn reduce_bit_depth_8_or_less(png: &PngImage, mut minimum_bits: usize) -> Op
} }
} }
let mut reduced = BitVec::with_capacity(png.data.len() * 8);
for line in png.scan_lines() { for line in png.scan_lines() {
reduced.extend(BitVec::from_bytes(&[line.filter])); reduced.extend(BitVec::from_bytes(&[line.filter]));
let bit_vec = BitVec::from_bytes(&line.data); let bit_vec = BitVec::from_bytes(&line.data);

View file

@ -494,6 +494,7 @@ fn fix_errors() {
} }
#[test] #[test]
#[cfg(feature = "zopfli")]
fn zopfli_mode() { fn zopfli_mode() {
let input = PathBuf::from("tests/files/zopfli_mode.png"); let input = PathBuf::from("tests/files/zopfli_mode.png");
let (output, mut opts) = get_opts(&input); let (output, mut opts) = get_opts(&input);
@ -511,6 +512,7 @@ fn zopfli_mode() {
} }
#[test] #[test]
#[cfg(feature = "libdeflater")]
fn libdeflater_mode() { fn libdeflater_mode() {
let input = PathBuf::from("tests/files/zopfli_mode.png"); let input = PathBuf::from("tests/files/zopfli_mode.png");
let (output, mut opts) = get_opts(&input); let (output, mut opts) = get_opts(&input);