Struct icns::IconFamily [] [src]

pub struct IconFamily {
    pub elements: Vec<IconElement>,
}

A set of icons stored in a single ICNS file.

Fields

elements: Vec<IconElement>

The icon elements stored in the ICNS file.

Methods

impl IconFamily
[src]

fn new() -> IconFamily

Creates a new, empty icon family.

fn add_icon(&mut self, image: &Image) -> Result<()>

Encodes the image into the family, automatically choosing an appropriate icon type based on the dimensions of the image. Returns an error if there is no supported icon type matching the image dimensions.

fn add_icon_with_type(&mut self, image: &Image, icon_type: IconType) -> Result<()>

Encodes the image into the family using the given icon type. If the selected type has an associated mask type, the image mask will also be added to the family. Returns an error if the image has the wrong dimensions for the selected type.

fn available_icons(&self) -> Vec<IconType>

Returns a list of all (non-mask) icon types for which the icon family contains the necessary element(s) for a complete icon image (including alpha channel). These icon types can be passed to the get_icon_with_type method to decode the icons.

fn get_icon_with_type(&self, icon_type: IconType) -> Result<Image>

Decodes an image from the family with the given icon type. If the selected type has an associated mask type, the two elements will decoded together into a single image. Returns an error if the element(s) for the selected type are not present in the icon family, or the if the encoded data is malformed.

fn read<R: Read>(reader: R) -> Result<IconFamily>

Reads an icon family from an ICNS file.

fn write<W: Write>(&self, writer: W) -> Result<()>

Writes the icon family to an ICNS file.

fn total_length(&self) -> u32

Returns the encoded length of the file, in bytes, including the length of the header.