diff options
author | Genny <gen@nyble.dev> | 2021-03-08 21:02:50 -0600 |
---|---|---|
committer | Genny <gen@nyble.dev> | 2021-03-08 21:02:50 -0600 |
commit | a368be4dfb3c1f75f6bcfdc297fe0372fb5f6092 (patch) | |
tree | 73c85d0abc2b065d827beea5f69f28a93d74816a /src/components/image.rs | |
parent | c54872f011c135bbbc963f4a2b6b1d8ee4fa92bc (diff) | |
download | gifed-a368be4dfb3c1f75f6bcfdc297fe0372fb5f6092.tar.gz gifed-a368be4dfb3c1f75f6bcfdc297fe0372fb5f6092.zip |
Rename a few things
Diffstat (limited to 'src/components/image.rs')
-rw-r--r-- | src/components/image.rs | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/src/components/image.rs b/src/components/image.rs deleted file mode 100644 index 07f9555..0000000 --- a/src/components/image.rs +++ /dev/null @@ -1,47 +0,0 @@ -use crate::LZW; -use super::{ColorTable, ImageDescriptor}; - -pub struct Image { - pub image_descriptor: ImageDescriptor, - pub local_color_table: Option<ColorTable>, - pub indicies: Vec<u8> -} - -impl Image { - pub fn as_boxed_slice(&self, minimum_code_size: u8) -> Box<[u8]> { - let mut out = vec![]; - - let mut boxed: Box<[u8]> = (&self.image_descriptor).into(); - out.extend_from_slice(&*boxed); - - // Table based image data // - - // Get the mcs while we write out the color table - let mut mcs = if let Some(lct) = &self.local_color_table { - boxed = lct.into(); - out.extend_from_slice(&*boxed); - - lct.packed_len() - } else { - minimum_code_size - }; - - if mcs < 2 { - mcs = 2; // Must be true: 0 <= mcs <= 8 - } - - // First write out the MCS - out.push(mcs); - - let compressed = LZW::encode(mcs, &self.indicies); - - for chunk in compressed.chunks(255) { - out.push(chunk.len() as u8); - out.extend_from_slice(chunk); - } - // Data block length 0 to indicate an end - out.push(0x00); - - out.into_boxed_slice() - } -} \ No newline at end of file |