mirror of
https://github.com/bend-n/fimg.git
synced 2024-12-22 18:38:21 -06:00
Image::take_buffer && Image::to_owned
This commit is contained in:
parent
5139fa82f7
commit
b618a22c88
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "fimg"
|
name = "fimg"
|
||||||
version = "0.3.1"
|
version = "0.3.2"
|
||||||
authors = ["bend-n <bend.n@outlook.com>"]
|
authors = ["bend-n <bend.n@outlook.com>"]
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
11
src/lib.rs
11
src/lib.rs
|
@ -116,6 +116,11 @@ impl<T, const CHANNELS: usize> Image<T, CHANNELS> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// consumes the image, returning the image buffer
|
||||||
|
pub fn take_buffer(self) -> T {
|
||||||
|
self.buffer
|
||||||
|
}
|
||||||
|
|
||||||
/// returns a immutable reference to the backing buffer
|
/// returns a immutable reference to the backing buffer
|
||||||
pub const fn buffer(&self) -> &T {
|
pub const fn buffer(&self) -> &T {
|
||||||
&self.buffer
|
&self.buffer
|
||||||
|
@ -165,6 +170,12 @@ impl<const CHANNELS: usize> Image<&[u8], CHANNELS> {
|
||||||
buffer: &[0; CHANNELS * WIDTH as usize * HEIGHT as usize],
|
buffer: &[0; CHANNELS * WIDTH as usize * HEIGHT as usize],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Allocate a new Image<Vec<u8>>.
|
||||||
|
pub fn to_owned(&self) -> Image<Vec<u8>, CHANNELS> {
|
||||||
|
// SAFETY: we have been constructed already, so must be valid
|
||||||
|
unsafe { Image::new(self.width, self.height, self.buffer.to_vec()) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T: std::ops::Deref<Target = [u8]>, const CHANNELS: usize> Image<T, CHANNELS> {
|
impl<T: std::ops::Deref<Target = [u8]>, const CHANNELS: usize> Image<T, CHANNELS> {
|
||||||
|
|
Loading…
Reference in a new issue