Enum ImageFormat

enum ImageFormat

An enumeration of supported image formats. Not all formats support both encoding and decoding.

Variants

Png

An Image in PNG Format

Jpeg

An Image in JPEG Format

Gif

An Image in GIF Format

WebP

An Image in WEBP Format

Pnm

An Image in general PNM Format

Tiff

An Image in TIFF Format

Tga

An Image in TGA Format

Dds

An Image in DDS Format

Bmp

An Image in BMP Format

Ico

An Image in ICO Format

Hdr

An Image in Radiance HDR Format

OpenExr

An Image in OpenEXR Format

Farbfeld

An Image in farbfeld Format

Avif

An Image in AVIF Format

Qoi

An Image in QOI Format

Implementations

impl ImageFormat

fn from_extension<S>(ext: S) -> Option<Self>
where
    S: AsRef<OsStr>

Return the image format specified by a path's file extension.

Example

use image::ImageFormat;

let format = ImageFormat::from_extension("jpg");
assert_eq!(format, Some(ImageFormat::Jpeg));
fn from_path<P>(path: P) -> ImageResult<Self>
where
    P: AsRef<Path>

Return the image format specified by the path's file extension.

Example

use image::ImageFormat;

let format = ImageFormat::from_path("images/ferris.png")?;
assert_eq!(format, ImageFormat::Png);

# Ok::<(), image::error::ImageError>(())
fn from_mime_type<M>(mime_type: M) -> Option<Self>
where
    M: AsRef<str>

Return the image format specified by a MIME type.

Example

use image::ImageFormat;

let format = ImageFormat::from_mime_type("image/png").unwrap();
assert_eq!(format, ImageFormat::Png);
fn to_mime_type(self: &Self) -> &'static str

Return the MIME type for this image format or "application/octet-stream" if no MIME type exists for the format.

Some notes on a few of the MIME types:

  • The portable anymap format has a separate MIME type for the pixmap, graymap and bitmap formats, but this method returns the general "image/x-portable-anymap" MIME type.
  • The Targa format has two common MIME types, "image/x-targa" and "image/x-tga"; this method returns "image/x-targa" for that format.
  • The QOI MIME type is still a work in progress. This method returns "image/x-qoi" for that format.

Example

use image::ImageFormat;

let mime_type = ImageFormat::Png.to_mime_type();
assert_eq!(mime_type, "image/png");
fn can_read(self: &Self) -> bool

Return if the ImageFormat can be decoded by the lib.

fn can_write(self: &Self) -> bool

Return if the ImageFormat can be encoded by the lib.

fn extensions_str(self: Self) -> &'static [&'static str]

Return a list of applicable extensions for this format.

All currently recognized image formats specify at least on extension but for future compatibility you should not rely on this fact. The list may be empty if the format has no recognized file representation, for example in case it is used as a purely transient memory format.

The method name extensions remains reserved for introducing another method in the future that yields a slice of OsStr which is blocked by several features of const evaluation.

fn reading_enabled(self: &Self) -> bool

Return the ImageFormats which are enabled for reading.

fn writing_enabled(self: &Self) -> bool

Return the ImageFormats which are enabled for writing.

fn all() -> impl Iterator<Item = ImageFormat>

Return all ImageFormats

impl Clone for ImageFormat

fn clone(self: &Self) -> ImageFormat

impl Copy for ImageFormat

impl Debug for ImageFormat

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

impl Eq for ImageFormat

impl Freeze for ImageFormat

impl Hash for ImageFormat

fn hash<__H: $crate::hash::Hasher>(self: &Self, state: &mut __H)

impl PartialEq for ImageFormat

fn eq(self: &Self, other: &ImageFormat) -> bool

impl RefUnwindSafe for ImageFormat

impl Send for ImageFormat

impl StructuralPartialEq for ImageFormat

impl Sync for ImageFormat

impl Unpin for ImageFormat

impl UnsafeUnpin for ImageFormat

impl UnwindSafe for ImageFormat

impl<T> Any for ImageFormat

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for ImageFormat

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for ImageFormat

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

impl<T> CloneToUninit for ImageFormat

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

impl<T> From for ImageFormat

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> Pointable for ImageFormat

unsafe fn init(init: <T as Pointable>::Init) -> usize
unsafe fn deref<'a>(ptr: usize) -> &'a T
unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
unsafe fn drop(ptr: usize)

impl<T> ToOwned for ImageFormat

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T, U> Into for ImageFormat

fn into(self: Self) -> U

Calls U::from(self).

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

impl<T, U> TryFrom for ImageFormat

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

impl<T, U> TryInto for ImageFormat

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