pub struct Encoder<W: Write> { /* private fields */ }
Expand description
GIF file encoder
Can be converted to one of three encoders:
- into_step_enc for high-level Steps
- into_frame_enc for mid-level Frames
- into_block_enc for low-level Blocks
Encoding Example
use gift::{Encoder, Step};
use pix::{gray::Gray8, Palette, Raster, rgb::SRgb8};
use std::error::Error;
use std::io::Write;
fn encode<W: Write>(mut w: W) -> Result<(), Box<dyn Error>> {
let mut enc = Encoder::new(&mut w).into_step_enc();
let mut raster = Raster::with_clear(4, 4);
*raster.pixel_mut(0, 0) = Gray8::new(1);
*raster.pixel_mut(1, 1) = Gray8::new(1);
*raster.pixel_mut(2, 2) = Gray8::new(1);
*raster.pixel_mut(3, 3) = Gray8::new(1);
let mut palette = Palette::new(2);
palette.set_entry(SRgb8::new(0xFF, 0, 0));
palette.set_entry(SRgb8::new(0xFF, 0xFF, 0));
let step = Step::with_indexed(raster, palette);
enc.encode_step(&step)?;
Ok(())
}
Implementations§
source§impl<W: Write> Encoder<W>
impl<W: Write> Encoder<W>
sourcepub fn into_block_enc(self) -> BlockEnc<W>
pub fn into_block_enc(self) -> BlockEnc<W>
Convert into a block encoder.
sourcepub fn into_frame_enc(self) -> FrameEnc<W>
pub fn into_frame_enc(self) -> FrameEnc<W>
Convert into a frame encoder.
sourcepub fn into_step_enc(self) -> StepEnc<W>
pub fn into_step_enc(self) -> StepEnc<W>
Convert into a step encoder.
Auto Trait Implementations§
impl<W> RefUnwindSafe for Encoder<W>where
W: RefUnwindSafe,
impl<W> Send for Encoder<W>where
W: Send,
impl<W> Sync for Encoder<W>where
W: Sync,
impl<W> Unpin for Encoder<W>where
W: Unpin,
impl<W> UnwindSafe for Encoder<W>where
W: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more