Struct native_windows_gui::ImageDecoder[][src]

pub struct ImageDecoder {
    pub factory: *mut IWICImagingFactory,
}

A image decoder. Can load an extended number of image file format from a filename, from a file handle, or from a stream.

ImageDecoder do not take any parameter to build, but it still provides a builder API to match the other component of NWG. You can also use “ImageDecoder::new” to avoid the builder API.

There’s not much reason to have more than 1 image decoder per application.

Images loaded from a decoder cannot be used as-is by an image frame. They must first be converted to a bitmap resource.

use native_windows_gui as nwg;
fn open_image(decoder: &nwg::ImageDecoder) -> Result<nwg::ImageData, nwg::NwgError> {
    decoder
        .from_filename("corn.png")?
        .frame(0)
}
use native_windows_gui as nwg;
fn build_image_decode(decode: &mut nwg::ImageDecoder) -> Result<(), nwg::NwgError> {
    nwg::ImageDecoder::builder()
        .build(decode)
}

Fields

factory: *mut IWICImagingFactory

Implementations

impl ImageDecoder[src]

pub fn new() -> Result<ImageDecoder, NwgError>[src]

pub fn builder() -> ImageDecoderBuilder[src]

pub fn from_filename<'a>(&self, path: &'a str) -> Result<ImageSource, NwgError>[src]

Try to read an image from a file path. The file type can be any of the native WIC codecs (https://docs.microsoft.com/en-us/windows/win32/wic/native-wic-codecs)

  • If there is an error during the decoding, returns a NwgError.
  • If the image decoder was not initialized, this method panics

This method returns a ImageSource object

pub fn from_stream(&self, stream: &[u8]) -> Result<ImageSource, NwgError>[src]

Build an image from a stream of data. The file type can be any of the native WIC codecs (https://docs.microsoft.com/en-us/windows/win32/wic/native-wic-codecs)

  • If there is an error during the decoding, returns a NwgError.
  • If the image decoder was not initialized, this method panics

This method copies the bytes and returns a ImageSource object

pub fn resize_image(
    &self,
    image: &ImageData,
    new_size: [u32; 2]
) -> Result<ImageData, NwgError>
[src]

Resize an image, returning the new resized image. The pixel format might change.

Trait Implementations

impl Default for ImageDecoder[src]

impl Drop for ImageDecoder[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.