pub struct Snapshot {
size: Size2D<u32>,
data: SnapshotData,
format: SnapshotPixelFormat,
alpha_mode: SnapshotAlphaMode,
}Expand description
Represents image bitmap with metadata, usually as snapshot of canvas
This allows us to hold off conversions (BGRA <-> RGBA, (un)premultiply) to when/if they are actually needed (WebGL/WebGPU can load both BGRA and RGBA).
Inspired by snapshot for concept in WebGPU spec: https://gpuweb.github.io/gpuweb/#abstract-opdef-get-a-copy-of-the-image-contents-of-a-context
Fields§
§size: Size2D<u32>§data: SnapshotDatainternal data (can be any format it will be converted on use if needed)
format: SnapshotPixelFormatRGBA/BGRA (reflect internal data)
alpha_mode: SnapshotAlphaModeHow to treat alpha channel
Implementations§
Source§impl Snapshot
impl Snapshot
pub const fn size(&self) -> Size2D<u32>
pub const fn format(&self) -> SnapshotPixelFormat
pub const fn alpha_mode(&self) -> SnapshotAlphaMode
pub fn empty() -> Self
Sourcepub fn cleared(size: Size2D<u32>) -> Self
pub fn cleared(size: Size2D<u32>) -> Self
Returns snapshot with provided size that is black transparent alpha
pub fn from_vec( size: Size2D<u32>, format: SnapshotPixelFormat, alpha_mode: SnapshotAlphaMode, data: Vec<u8>, ) -> Self
pub fn get_rect(&self, rect: Rect<u32>) -> Self
Sourcepub fn transform(
&mut self,
target_alpha_mode: SnapshotAlphaMode,
target_format: SnapshotPixelFormat,
)
pub fn transform( &mut self, target_alpha_mode: SnapshotAlphaMode, target_format: SnapshotPixelFormat, )
Convert inner data of snapshot to target format and alpha mode. If data is already in target format and alpha mode no work will be done.
pub fn as_raw_bytes(&self) -> &[u8] ⓘ
pub fn as_raw_bytes_mut(&mut self) -> &mut [u8] ⓘ
pub fn encode_for_mime_type<W: Write>( &mut self, image_type: &EncodedImageType, quality: Option<f64>, encoder: &mut W, ) -> Result<(), ImageError>
Trait Implementations§
Source§impl MallocSizeOf for Snapshot
impl MallocSizeOf for Snapshot
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Measure the heap usage of all descendant heap-allocated structures, but
not the space taken up by the value itself.
Auto Trait Implementations§
impl Freeze for Snapshot
impl RefUnwindSafe for Snapshot
impl Send for Snapshot
impl Sync for Snapshot
impl Unpin for Snapshot
impl UnwindSafe for Snapshot
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
Source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
Source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
Source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert