pub struct ImageData<'a> {
pub width: usize,
pub height: usize,
pub bytes: Cow<'a, [u8]>,
}
Expand description
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: usize
§height: usize
§bytes: Cow<'a, [u8]>
Implementations§
source§impl<'a> ImageData<'a>
impl<'a> ImageData<'a>
sourcepub fn into_owned_bytes(self) -> Cow<'static, [u8]>
pub fn into_owned_bytes(self) -> Cow<'static, [u8]>
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.
sourcepub fn to_owned_img(&self) -> ImageData<'static>
pub fn to_owned_img(&self) -> ImageData<'static>
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.