Struct druid::widget::Image

source ·
pub struct Image { /* private fields */ }
Expand description

A widget that renders a bitmap Image.

Contains data about how to fill the given space and interpolate pixels. Configuration options are provided via the builder pattern.

Note: when scaling a bitmap image, such as supporting multiple screen sizes and resolutions, interpolation can lead to blurry or pixelated images and so is not recommended for things like icons. Instead consider using SVG files and enabling the svg feature with cargo.

(See also: ImageBuf, FillStrat, InterpolationMode)

Example

Create an image widget and configure it using builder methods

use druid::{
    widget::{Image, FillStrat},
    piet::{ImageBuf, InterpolationMode},
};

let image_data = ImageBuf::empty();
let image_widget = Image::new(image_data)
    // set the fill strategy
    .fill_mode(FillStrat::Fill)
    // set the interpolation mode
    .interpolation_mode(InterpolationMode::Bilinear);

Create an image widget and configure it using setters

use druid::{
    widget::{Image, FillStrat},
    piet::{ImageBuf, InterpolationMode},
};

let image_data = ImageBuf::empty();
let mut image_widget = Image::new(image_data);
// set the fill strategy
image_widget.set_fill_mode(FillStrat::FitWidth);
// set the interpolation mode
image_widget.set_interpolation_mode(InterpolationMode::Bilinear);

Implementations§

source§

impl Image

source

pub fn new(image_data: ImageBuf) -> Self

Create an image drawing widget from an image buffer.

By default, the Image will scale to fit its box constraints (FillStrat::Fill) and will be scaled bilinearly (InterpolationMode::Bilinear)

The underlying ImageBuf uses Arc for buffer data, making it cheap to clone.

source

pub fn fill_mode(self, mode: FillStrat) -> Self

Builder-style method for specifying the fill strategy.

source

pub fn set_fill_mode(&mut self, newfil: FillStrat)

Modify the widget’s fill strategy.

source

pub fn interpolation_mode(self, interpolation: InterpolationMode) -> Self

Builder-style method for specifying the interpolation strategy.

source

pub fn set_interpolation_mode(&mut self, interpolation: InterpolationMode)

Modify the widget’s interpolation mode.

source

pub fn clip_area(self, clip_area: Option<Rect>) -> Self

Builder-style method for setting the area of the image that will be displayed.

If None, then the whole image will be displayed.

source

pub fn set_clip_area(&mut self, clip_area: Option<Rect>)

Set the area of the image that will be displayed.

If None, then the whole image will be displayed.

source

pub fn set_image_data(&mut self, image_data: ImageBuf)

Set new ImageBuf.

Trait Implementations§

source§

impl<T: Data> Widget<T> for Image

source§

fn event( &mut self, _ctx: &mut EventCtx<'_, '_>, _event: &Event, _data: &mut T, _env: &Env )

Handle an event. Read more
source§

fn lifecycle( &mut self, _ctx: &mut LifeCycleCtx<'_, '_>, _event: &LifeCycle, _data: &T, _env: &Env )

Handle a life cycle notification. Read more
source§

fn update( &mut self, _ctx: &mut UpdateCtx<'_, '_>, _old_data: &T, _data: &T, _env: &Env )

Update the widget’s appearance in response to a change in the app’s Data or Env. Read more
source§

fn layout( &mut self, _layout_ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, _data: &T, _env: &Env ) -> Size

Compute layout. Read more
source§

fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, _data: &T, _env: &Env)

Paint the widget appearance. Read more
source§

fn compute_max_intrinsic( &mut self, axis: Axis, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env ) -> f64

Computes max intrinsic/preferred dimension of a widget on the provided axis. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Image

§

impl !Send for Image

§

impl !Sync for Image

§

impl Unpin for Image

§

impl UnwindSafe for Image

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

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

const: unstable · 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.

§

impl<T> RoundFrom<T> for T

§

fn round_from(x: T) -> T

Performs the conversion.
§

impl<T, U> RoundInto<U> for Twhere U: RoundFrom<T>,

§

fn round_into(self) -> U

Performs the conversion.
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, W> TestWidgetExt<T> for Wwhere T: Data, W: Widget<T> + 'static,

source§

fn record(self, recording: &Recording) -> Recorder<Self>

source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more