mirror of
https://github.com/bend-n/fimg.git
synced 2024-12-22 02:28:19 -06:00
add DynImage::pixel
This commit is contained in:
parent
f7b1c2100f
commit
3b69335dcd
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "fimg"
|
||||
version = "0.4.24"
|
||||
version = "0.4.25"
|
||||
authors = ["bend-n <bend.n@outlook.com>"]
|
||||
license = "MIT"
|
||||
edition = "2021"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use crate::Image;
|
||||
use crate::{pixels::convert::PFrom, Image};
|
||||
mod affine;
|
||||
mod convert;
|
||||
#[cfg(feature = "scale")]
|
||||
|
@ -68,6 +68,25 @@ impl<T: AsRef<[u8]>> DynImage<T> {
|
|||
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.
|
||||
pub fn bytes(&self) -> &[u8] {
|
||||
e!(self, |i| i.bytes())
|
||||
|
|
Loading…
Reference in a new issue