Use raw deflate rather than zlib for brute

This commit is contained in:
Andrew 2025-09-21 00:24:57 +12:00 committed by andrews05
parent 9829d07478
commit 374ca11492

View file

@ -513,14 +513,14 @@ impl PngImage {
let mut compressor = let mut compressor =
Compressor::new(CompressionLvl::new(level.into()).unwrap()); Compressor::new(CompressionLvl::new(level.into()).unwrap());
let limit = filtered.len().min((line.data.len() + 1) * num_lines); let limit = filtered.len().min((line.data.len() + 1) * num_lines);
let capacity = compressor.zlib_compress_bound(limit); let capacity = compressor.deflate_compress_bound(limit);
let mut dest = vec![0; capacity]; let mut dest = vec![0; capacity];
for f in try_filters { for f in try_filters {
f.filter_line(bpp, &mut line_data, &prev_line, &mut f_buf, alpha_bytes); f.filter_line(bpp, &mut line_data, &prev_line, &mut f_buf, alpha_bytes);
filtered[line_start..].copy_from_slice(&f_buf); filtered[line_start..].copy_from_slice(&f_buf);
let size = compressor let size = compressor
.zlib_compress(&filtered[filtered.len() - limit..], &mut dest) .deflate_compress(&filtered[filtered.len() - limit..], &mut dest)
.unwrap_or(usize::MAX); .unwrap_or(usize::MAX);
if size < best_size { if size < best_size {
best_size = size; best_size = size;