Skip to main content

Bitmap

Struct Bitmap 

Source
pub struct Bitmap(/* private fields */);
Expand description

Raster images from bytes (docs/images.md): decode an encoded PNG or JPEG the app already holds (a download, a file the user picked, a paste) into the platform’s image type, then show it with image(&bitmap) or draw it with Draw::image.

Bitmap is a handle, not the pixels: they live in the toolkit and are released when the last handle drops. Decoding is asynchronous because several backends decode off the main thread. Probe image_decode_support() / image_encode_support() before offering an affordance that depends on either, and image_encode_formats() before offering a format, since every platform here reads more formats than it writes. A decoded image the toolkit holds, released when the last handle drops.

Cheap to clone (an Rc), so several nodes and the canvas can draw the same decode. !Send like everything else that talks to the toolkit.

Implementations§

Source§

impl Bitmap

Source

pub fn id(&self) -> BitmapId

The id the toolkit knows this image by, which day_spec::ImageSource::Decoded carries.

Source

pub fn info(&self) -> BitmapInfo

Pixel size, scale, format and alpha, read once at decode (docs/images.md).

Source

pub fn properties(&self) -> Option<ImageProperties>

The metadata beyond the pixels: EXIF orientation, DPI, capture time. None where this backend ships no metadata reader; probe Cap::ImageProperties before offering an affordance that needs it.

Source

pub fn encode(&self, spec: EncodeSpec) -> EncodeFuture ⓘ

Encode back to bytes, in spec’s format. Await it inside day::task.

Source

pub fn encode_async( &self, spec: EncodeSpec, on_done: impl FnOnce(Result<Vec<u8>, ImageError>) + 'static, )

Bitmap::encode’s callback half, for a call site that is not already async.

Trait Implementations§

Source§

impl Clone for Bitmap

Source§

fn clone(&self) -> Bitmap

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Bitmap

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl IntoImageSource<ImageValueMark> for &Bitmap

A decoded image draws by id, so several nodes (and the canvas) share one decode. A decoded handle. The piece keeps a clone alive for the node’s life: the closure below owns it, the binding owns the closure, and the node’s scope owns the binding, so the toolkit’s image outlives the view that shows it however the app juggles its own handle. Without this an image(&bitmap) would carry only the id, and on the web the <img> would point at an object URL that release_image had already revoked.

Source§

impl PartialEq for Bitmap

Two handles are the same image when they name the same decode.

Source§

fn eq(&self, other: &Bitmap) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AnyEq for T
where T: Any + PartialEq,

§

fn equals(&self, other: &(dyn Any + 'static)) -> bool

§

fn as_any(&self) -> &(dyn Any + 'static)

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> IntoReactive<T, StaticMark> for T
where T: Clone + 'static,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.