Struct libmosh::MoshCore

source ·
pub struct MoshCore {
    pub data: MoshData,
    pub options: MoshOptions,
}
Expand description

Core container.

Holds image data and processing options.

Fields§

§data: MoshData§options: MoshOptions

Implementations§

source§

impl MoshCore

source

pub fn new() -> Self

Creates a new, empty instance of MoshCore with a random seed.

source

pub fn read_image(&mut self, input: &[u8]) -> Result<(), MoshError>

Reads provided image for future processing.

§Errors

It may fail if an image is not a valid PNG file.

source

pub fn mosh(&mut self) -> Result<(), MoshError>

Processes an image with current settings, storing the result in a buffer.

§Errors
§Example
use libmosh::{
    err::MoshError,
    ops::{read_file, write_file},
    MoshCore,
};

let input = read_file("src/util/test-rgb.png")?;
let output = "test.png";
let mut image = MoshCore::new();

image.options.min_rate = 5;
image.options.max_rate = 7;
image.options.pixelation = 10;
image.options.line_shift = 0.7;
image.options.reverse = 0.4;
image.options.flip = 0.3;
image.options.channel_swap = 0.5;
image.options.channel_shift = 0.5;
image.options.seed = 42;

image.read_image(&input)?;
image.mosh()?;
write_file(
    output,
    &image.data.buf,
    image.data.width,
    image.data.height,
    image.data.color_type,
    image.data.bit_depth,
)?;

Trait Implementations§

source§

impl Clone for MoshCore

source§

fn clone(&self) -> MoshCore

Returns a copy 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 Default for MoshCore

source§

fn default() -> MoshCore

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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> 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,

§

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>,

§

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>,

§

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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V