Struct arboard::ImageData[][src]

pub struct ImageData<'a> {
    pub width: usize,
    pub height: usize,
    pub bytes: Cow<'a, [u8]>,
}

Stores pixel data of an image.

Each element in bytes stores the value of a channel of a single pixel. This struct stores four channels (red, green, blue, alpha) so a 3*3 image is going to be stored on 3*3*4 = 36 bytes of data.

The pixels are in row-major order meaning that the second pixel in bytes (starting at the fifth byte) corresponds to the pixel that’s sitting to the right side of the top-left pixel (x=1, y=0)

Assigning a 2*1 image would for example look like this

use arboard::ImageData;
use std::borrow::Cow;
let bytes = [
    // A red pixel
    255, 0, 0, 255,

    // A green pixel
    0, 255, 0, 255,
];
let img = ImageData {
    width: 2,
    height: 1,
    bytes: Cow::from(bytes.as_ref())
};

Fields

width: usizeheight: usizebytes: Cow<'a, [u8]>

Implementations

impl<'a> ImageData<'a>[src]

pub fn into_owned_bytes(self) -> Cow<'static, [u8]>[src]

Returns a the bytes field in a way that it’s guaranteed to be owned. It moves the bytes if they are already owned and clones them if they are borrowed.

pub fn to_owned_img(&self) -> ImageData<'static>[src]

Returns an image data that is guaranteed to own its bytes. It moves the bytes if they are already owned and clones them if they are borrowed.

Trait Implementations

impl<'a> Clone for ImageData<'a>[src]

impl<'a> Debug for ImageData<'a>[src]

Auto Trait Implementations

impl<'a> RefUnwindSafe for ImageData<'a>

impl<'a> Send for ImageData<'a>

impl<'a> Sync for ImageData<'a>

impl<'a> Unpin for ImageData<'a>

impl<'a> UnwindSafe for ImageData<'a>

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> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.