mirror of
https://github.com/bend-n/fimg.git
synced 2024-12-22 10:28:21 -06:00
add DynImage::pixel
This commit is contained in:
parent
f7b1c2100f
commit
3b69335dcd
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "fimg"
|
name = "fimg"
|
||||||
version = "0.4.24"
|
version = "0.4.25"
|
||||||
authors = ["bend-n <bend.n@outlook.com>"]
|
authors = ["bend-n <bend.n@outlook.com>"]
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use crate::Image;
|
use crate::{pixels::convert::PFrom, Image};
|
||||||
mod affine;
|
mod affine;
|
||||||
mod convert;
|
mod convert;
|
||||||
#[cfg(feature = "scale")]
|
#[cfg(feature = "scale")]
|
||||||
|
@ -68,6 +68,25 @@ impl<T: AsRef<[u8]>> DynImage<T> {
|
||||||
e!(self => |i| i.as_ref())
|
e!(self => |i| i.as_ref())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get a pixel, of a type.
|
||||||
|
/// ```
|
||||||
|
/// # use fimg::{Image, DynImage};
|
||||||
|
/// let i = DynImage::Rgb(Image::alloc(50, 50));
|
||||||
|
/// assert_eq!(unsafe { i.pixel::<4>(25, 25) }, [0, 0, 0, 255]);
|
||||||
|
/// ```
|
||||||
|
/// # Safety
|
||||||
|
///
|
||||||
|
/// undefined behaviour if pixel is out of bounds.
|
||||||
|
pub unsafe fn pixel<const P: usize>(&self, x: u32, y: u32) -> [u8; P]
|
||||||
|
where
|
||||||
|
[u8; P]: PFrom<1>,
|
||||||
|
[u8; P]: PFrom<2>,
|
||||||
|
[u8; P]: PFrom<3>,
|
||||||
|
[u8; P]: PFrom<4>,
|
||||||
|
{
|
||||||
|
e!(self, |i| PFrom::pfrom(unsafe { i.pixel(x, y) }))
|
||||||
|
}
|
||||||
|
|
||||||
/// Bytes of this image.
|
/// Bytes of this image.
|
||||||
pub fn bytes(&self) -> &[u8] {
|
pub fn bytes(&self) -> &[u8] {
|
||||||
e!(self, |i| i.bytes())
|
e!(self, |i| i.bytes())
|
||||||
|
|
Loading…
Reference in a new issue