Reader

Struct Reader 

Source
pub struct Reader<R: Read> {
    pub header: Header,
    /* private fields */
}
Expand description

PCX file reader.

Fields§

§header: Header

File header. All useful values are available via Reader methods so you don’t actually need it.

Implementations§

Source§

impl Reader<BufReader<File>>

Source

pub fn from_file<P: AsRef<Path>>(path: P) -> Result<Self>

Start reading PCX file.

Source§

impl<'a> Reader<Cursor<&'a [u8]>>

Source

pub fn from_mem(data: &'a [u8]) -> Result<Self>

Start reading PCX file from memory buffer.

Source§

impl<R: Read> Reader<R>

Source

pub fn new(stream: R) -> Result<Self>

Start reading PCX file.

Source

pub fn dimensions(&self) -> (u16, u16)

Get width and height of the image.

Source

pub fn width(&self) -> u16

The width of this image.

Source

pub fn height(&self) -> u16

The height of this image.

Source

pub fn is_paletted(&self) -> bool

Whether this image is paletted or 24-bit RGB.

Source

pub fn palette_length(&self) -> Option<u16>

Get number of colors in the palette if this image is paletted. Number of colors is either 2, 4, 8, 16 or 256.

Source

pub fn next_row_paletted(&mut self, buffer: &mut [u8]) -> Result<()>

Read next row of the paletted image. Check that is_paletted() is true before calling this function.

buffer length must be equal to the image width.

Order of rows is from top to bottom, order of pixels is from left to right.

Source

pub fn next_row_rgb_separate( &mut self, r: &mut [u8], g: &mut [u8], b: &mut [u8], ) -> Result<()>

Read next row of the RGB image to separate R, G and B buffers. Check that is_paletted() is false before calling this function.

r, g, b buffer lengths must be equal to the image width.

Order of rows is from top to bottom, order of pixels is from left to right.

Source

pub fn next_row_rgb(&mut self, rgb: &mut [u8]) -> Result<()>

Read next row of the RGB image to one buffer with interleaved RGB values. Check that is_paletted() is false before calling this function.

rgb buffer length must be equal to the image width multiplied by 3.

Order of rows is from top to bottom, order of pixels is from left to right.

Source

pub fn read_palette(self, buffer: &mut [u8]) -> Result<usize>

Read color palette.

If palette contains 256-colors then it is stored at the end of file and this function will read the file to the end.

Returns number of colors in palette or zero if there is no palette. The actual number of bytes written to the output buffer is equal to the returned value multiplied by 3. Format of the output buffer is R, G, B, R, G, B, …

Consider using get_palette instead.

Source§

impl<R: Seek + Read> Reader<R>

Source

pub fn read_rgb_pixels(&mut self, rgb: &mut [u8]) -> Result<()>

Read the entire RGB image, converting from paletted to RGB if necessarry.

rgb buffer length must be equal to width*height*3.

Order of rows is from top to bottom, order of pixels is from left to right. Format of the output buffer is R, G, B, R, G, B, …

Source

pub fn get_palette(&mut self, buffer: &mut [u8]) -> Result<usize>

Get color palette.

Returns number of colors in palette or zero if there is no palette. The actual number of bytes written to the output buffer is equal to the returned value multiplied by 3. Format of the output buffer is R, G, B, R, G, B, …

Trait Implementations§

Source§

impl<R: Clone + Read> Clone for Reader<R>

Source§

fn clone(&self) -> Reader<R>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<R: Debug + Read> Debug for Reader<R>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<R> Freeze for Reader<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for Reader<R>
where R: RefUnwindSafe,

§

impl<R> Send for Reader<R>
where R: Send,

§

impl<R> Sync for Reader<R>
where R: Sync,

§

impl<R> Unpin for Reader<R>
where R: Unpin,

§

impl<R> UnwindSafe for Reader<R>
where R: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.