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
impl Image
Sourcepub fn new(image_data: ImageBuf) -> Self
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.
Sourcepub fn fill_mode(self, mode: FillStrat) -> Self
pub fn fill_mode(self, mode: FillStrat) -> Self
Builder-style method for specifying the fill strategy.
Sourcepub fn set_fill_mode(&mut self, newfil: FillStrat)
pub fn set_fill_mode(&mut self, newfil: FillStrat)
Modify the widget’s fill strategy.
Sourcepub fn interpolation_mode(self, interpolation: InterpolationMode) -> Self
pub fn interpolation_mode(self, interpolation: InterpolationMode) -> Self
Builder-style method for specifying the interpolation strategy.
Sourcepub fn set_interpolation_mode(&mut self, interpolation: InterpolationMode)
pub fn set_interpolation_mode(&mut self, interpolation: InterpolationMode)
Modify the widget’s interpolation mode.
Sourcepub fn clip_area(self, clip_area: Option<Rect>) -> Self
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.
Sourcepub fn set_clip_area(&mut self, clip_area: Option<Rect>)
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.
Sourcepub fn set_image_data(&mut self, image_data: ImageBuf)
pub fn set_image_data(&mut self, image_data: ImageBuf)
Set new ImageBuf
.
Trait Implementations§
Source§impl<T: Data> Widget<T> for Image
impl<T: Data> Widget<T> for Image
Source§fn event(
&mut self,
_ctx: &mut EventCtx<'_, '_>,
_event: &Event,
_data: &mut T,
_env: &Env,
)
fn event( &mut self, _ctx: &mut EventCtx<'_, '_>, _event: &Event, _data: &mut T, _env: &Env, )
Source§fn lifecycle(
&mut self,
_ctx: &mut LifeCycleCtx<'_, '_>,
_event: &LifeCycle,
_data: &T,
_env: &Env,
)
fn lifecycle( &mut self, _ctx: &mut LifeCycleCtx<'_, '_>, _event: &LifeCycle, _data: &T, _env: &Env, )
Source§fn layout(
&mut self,
_layout_ctx: &mut LayoutCtx<'_, '_>,
bc: &BoxConstraints,
_data: &T,
_env: &Env,
) -> Size
fn layout( &mut self, _layout_ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, _data: &T, _env: &Env, ) -> Size
Source§fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, _data: &T, _env: &Env)
fn paint(&mut self, ctx: &mut PaintCtx<'_, '_, '_>, _data: &T, _env: &Env)
Source§fn compute_max_intrinsic(
&mut self,
axis: Axis,
ctx: &mut LayoutCtx<'_, '_>,
bc: &BoxConstraints,
data: &T,
env: &Env,
) -> f64
fn compute_max_intrinsic( &mut self, axis: Axis, ctx: &mut LayoutCtx<'_, '_>, bc: &BoxConstraints, data: &T, env: &Env, ) -> f64
Auto Trait Implementations§
impl Freeze for Image
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> 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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
Source§fn round_into(self) -> U
fn round_into(self) -> U
Source§impl<T, W> TestWidgetExt<T> for W
impl<T, W> TestWidgetExt<T> for W
Source§impl<T, W> WidgetExt<T> for W
impl<T, W> WidgetExt<T> for W
Source§fn align_left(self) -> Align<T>
fn align_left(self) -> Align<T>
Align
widget, configured to align left.Source§fn align_right(self) -> Align<T>
fn align_right(self) -> Align<T>
Align
widget, configured to align right.Source§fn align_vertical(self, align: UnitPoint) -> Align<T>
fn align_vertical(self, align: UnitPoint) -> Align<T>
Align
widget, configured to align vertically.Source§fn align_horizontal(self, align: UnitPoint) -> Align<T>
fn align_horizontal(self, align: UnitPoint) -> Align<T>
Align
widget, configured to align horizontally.Source§fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
fn fix_width(self, width: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
SizedBox
with an explicit width.Source§fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
fn fix_height(self, height: impl Into<KeyOrValue<f64>>) -> SizedBox<T>
SizedBox
with an explicit height.Source§fn fix_size(
self,
width: impl Into<KeyOrValue<f64>>,
height: impl Into<KeyOrValue<f64>>,
) -> SizedBox<T>
fn fix_size( self, width: impl Into<KeyOrValue<f64>>, height: impl Into<KeyOrValue<f64>>, ) -> SizedBox<T>
SizedBox
with an explicit width and heightSource§fn expand_width(self) -> SizedBox<T>
fn expand_width(self) -> SizedBox<T>
Source§fn expand_height(self) -> SizedBox<T>
fn expand_height(self) -> SizedBox<T>
Source§fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn background(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
Source§fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
fn foreground(self, brush: impl Into<BackgroundBrush<T>>) -> Container<T>
Source§fn border(
self,
color: impl Into<KeyOrValue<Color>>,
width: impl Into<KeyOrValue<f64>>,
) -> Container<T>
fn border( self, color: impl Into<KeyOrValue<Color>>, width: impl Into<KeyOrValue<f64>>, ) -> Container<T>
Source§fn controller<C: Controller<T, Self>>(
self,
controller: C,
) -> ControllerHost<Self, C>
fn controller<C: Controller<T, Self>>( self, controller: C, ) -> ControllerHost<Self, C>
Controller
.Source§fn on_added(
self,
f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static,
) -> ControllerHost<Self, Added<T, Self>>
fn on_added( self, f: impl Fn(&mut Self, &mut LifeCycleCtx<'_, '_>, &T, &Env) + 'static, ) -> ControllerHost<Self, Added<T, Self>>
Source§fn on_click(
self,
f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static,
) -> ControllerHost<Self, Click<T>>
fn on_click( self, f: impl Fn(&mut EventCtx<'_, '_>, &mut T, &Env) + 'static, ) -> ControllerHost<Self, Click<T>>
Source§fn debug_paint_layout(self) -> EnvScope<T, Self>
fn debug_paint_layout(self) -> EnvScope<T, Self>
layout
Rect
s of this widget and its children.Source§fn debug_widget_id(self) -> EnvScope<T, Self>
fn debug_widget_id(self) -> EnvScope<T, Self>
WidgetId
s for this widget and its children, when hot. Read moreSource§fn debug_invalidation(self) -> DebugInvalidation<T, Self>
fn debug_invalidation(self) -> DebugInvalidation<T, Self>
Source§fn debug_widget(self) -> EnvScope<T, Self>
fn debug_widget(self) -> EnvScope<T, Self>
DEBUG_WIDGET
env variable for this widget (and its descendants). Read moreSource§fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>
fn with_id(self, id: WidgetId) -> IdentityWrapper<Self>
Source§fn disabled_if(
self,
disabled_if: impl Fn(&T, &Env) -> bool + 'static,
) -> DisabledIf<T, Self>
fn disabled_if( self, disabled_if: impl Fn(&T, &Env) -> bool + 'static, ) -> DisabledIf<T, Self>
DisabledIf
widget. Read more