pub struct Encoder<W: Write> {
w: Option<W>,
global_palette: bool,
width: u16,
height: u16,
buffer: Vec<u8>,
}
Expand description
GIF encoder.
Fields§
§w: Option<W>
§global_palette: bool
§width: u16
§height: u16
§buffer: Vec<u8>
Implementations§
source§impl<W: Write> Encoder<W>
impl<W: Write> Encoder<W>
sourcepub fn new(
w: W,
width: u16,
height: u16,
global_palette: &[u8],
) -> Result<Self, EncodingError>
pub fn new( w: W, width: u16, height: u16, global_palette: &[u8], ) -> Result<Self, EncodingError>
Creates a new encoder.
global_palette
gives the global color palette in the format [r, g, b, ...]
,
if no global palette shall be used an empty slice may be supplied.
sourcepub fn set_repeat(&mut self, repeat: Repeat) -> Result<(), EncodingError>
pub fn set_repeat(&mut self, repeat: Repeat) -> Result<(), EncodingError>
Write an extension block that signals a repeat behaviour.
sourcefn write_global_palette(self, palette: &[u8]) -> Result<Self, EncodingError>
fn write_global_palette(self, palette: &[u8]) -> Result<Self, EncodingError>
Writes the global color palette.
sourcepub fn write_frame(&mut self, frame: &Frame<'_>) -> Result<(), EncodingError>
pub fn write_frame(&mut self, frame: &Frame<'_>) -> Result<(), EncodingError>
Writes a frame to the image.
Note: This function also writes a control extension if necessary.
fn write_frame_header(&mut self, frame: &Frame<'_>) -> Result<(), EncodingError>
fn write_image_block(&mut self, data: &[u8]) -> Result<(), EncodingError>
fn write_encoded_image_block( writer: &mut W, data_with_min_code_size: &[u8], ) -> Result<(), EncodingError>
fn write_color_table( writer: &mut W, table: &[u8], padding: usize, ) -> Result<(), EncodingError>
sourcefn check_color_table(table: &[u8]) -> Result<(&[u8], usize, u8), EncodingError>
fn check_color_table(table: &[u8]) -> Result<(&[u8], usize, u8), EncodingError>
returns rounded palette size, number of missing colors, and table size flag
sourcepub fn write_extension(
&mut self,
extension: ExtensionData,
) -> Result<(), EncodingError>
pub fn write_extension( &mut self, extension: ExtensionData, ) -> Result<(), EncodingError>
Writes an extension to the image.
It is normally not necessary to call this method manually.
sourcepub fn write_raw_extension(
&mut self,
func: AnyExtension,
data: &[&[u8]],
) -> Result<()>
pub fn write_raw_extension( &mut self, func: AnyExtension, data: &[&[u8]], ) -> Result<()>
Writes a raw extension to the image.
This method can be used to write an unsupported extension to the file. func
is the extension
identifier (e.g. Extension::Application as u8
). data
are the extension payload blocks. If any
contained slice has a lenght > 255 it is automatically divided into sub-blocks.
sourcepub fn write_lzw_pre_encoded_frame(
&mut self,
frame: &Frame<'_>,
) -> Result<(), EncodingError>
pub fn write_lzw_pre_encoded_frame( &mut self, frame: &Frame<'_>, ) -> Result<(), EncodingError>
Writes a frame to the image, but expects Frame.buffer
to contain LZW-encoded data
from Frame::make_lzw_pre_encoded
.
Note: This function also writes a control extension if necessary.
sourcefn write_screen_desc(&mut self, flags: u8) -> Result<()>
fn write_screen_desc(&mut self, flags: u8) -> Result<()>
Writes the logical screen desriptor
sourcepub fn get_mut(&mut self) -> &mut W
pub fn get_mut(&mut self) -> &mut W
Gets a mutable reference to the writer instance used by this encoder.
It is inadvisable to directly write to the underlying writer.
sourcepub fn into_inner(self) -> Result<W>
pub fn into_inner(self) -> Result<W>
Finishes writing, and returns the io::Write
instance used by this encoder
sourcefn write_trailer(&mut self) -> Result<()>
fn write_trailer(&mut self) -> Result<()>
Write the final tailer.