diff --git a/src/encoder.rs b/src/encoder.rs index 045a4aa..6c14c2b 100644 --- a/src/encoder.rs +++ b/src/encoder.rs @@ -4,6 +4,7 @@ use itertools::Itertools; use crate::common::*; // @TODO replace Options with custom Errors +// @TODO encoder wrappers for RgbaImage/RgbImage impl Ops { fn write_encoded (self, buf: &mut Vec) { @@ -42,7 +43,7 @@ fn encode_header (header: Header) -> Option> { fn encode_body (header: Header, data: &[u8]) -> Option> { let mut known = [[0u8; 4]; 64]; let mut last = [0u8, 0, 0, 255]; - let mut out = vec![]; + let mut out = Vec::with_capacity(header.width as usize * header.height as usize); let mut cur = Ops::Nop; for mut chunk in &data.iter().chunks(header.channels.num()) {