pub struct Image<'a> { /* private fields */ }
Expand description
A widget which displays an image.
The task of actually loading the image is deferred to when the Image
is added to the Ui
,
and how it is loaded depends on the provided ImageSource
:
ImageSource::Uri
will load the image using the asynchronous loading process.ImageSource::Bytes
will also load the image using the asynchronous loading process, but with lower latency.ImageSource::Texture
will use the provided texture.
See crate::load
for more information.
§Examples
// Using it in a layout:
ui.add(
egui::Image::new(egui::include_image!("../../assets/ferris.png"))
.corner_radius(5)
);
// Using it just to paint:
egui::Image::new(egui::include_image!("../../assets/ferris.png"))
.corner_radius(5)
.tint(egui::Color32::LIGHT_BLUE)
.paint_at(ui, rect);
Implementations§
Source§impl<'a> Image<'a>
impl<'a> Image<'a>
Sourcepub fn new(source: impl Into<ImageSource<'a>>) -> Self
pub fn new(source: impl Into<ImageSource<'a>>) -> Self
Load the image from some source.
Sourcepub fn from_uri(uri: impl Into<Cow<'a, str>>) -> Self
pub fn from_uri(uri: impl Into<Cow<'a, str>>) -> Self
Load the image from a URI.
See ImageSource::Uri
.
Sourcepub fn from_texture(texture: impl Into<SizedTexture>) -> Self
pub fn from_texture(texture: impl Into<SizedTexture>) -> Self
Load the image from an existing texture.
See ImageSource::Texture
.
Sourcepub fn from_bytes(
uri: impl Into<Cow<'static, str>>,
bytes: impl Into<Bytes>,
) -> Self
pub fn from_bytes( uri: impl Into<Cow<'static, str>>, bytes: impl Into<Bytes>, ) -> Self
Load the image from some raw bytes.
For better error messages, use the bytes://
prefix for the URI.
See ImageSource::Bytes
.
Sourcepub fn texture_options(self, texture_options: TextureOptions) -> Self
pub fn texture_options(self, texture_options: TextureOptions) -> Self
Texture options used when creating the texture.
Sourcepub fn max_width(self, width: f32) -> Self
pub fn max_width(self, width: f32) -> Self
Set the max width of the image.
No matter what the image is scaled to, it will never exceed this limit.
Sourcepub fn max_height(self, height: f32) -> Self
pub fn max_height(self, height: f32) -> Self
Set the max height of the image.
No matter what the image is scaled to, it will never exceed this limit.
Sourcepub fn max_size(self, size: Vec2) -> Self
pub fn max_size(self, size: Vec2) -> Self
Set the max size of the image.
No matter what the image is scaled to, it will never exceed this limit.
Sourcepub fn maintain_aspect_ratio(self, value: bool) -> Self
pub fn maintain_aspect_ratio(self, value: bool) -> Self
Whether or not the ImageFit
should maintain the image’s original aspect ratio.
Sourcepub fn fit_to_original_size(self, scale: f32) -> Self
pub fn fit_to_original_size(self, scale: f32) -> Self
Fit the image to its original size with some scaling.
The texel size of the source image will be multiplied by the scale
factor,
and then become the ui size of the Image
.
This will cause the image to overflow if it is larger than the available space.
If Image::max_size
is set, this is guaranteed to never exceed that limit.
Sourcepub fn fit_to_exact_size(self, size: Vec2) -> Self
pub fn fit_to_exact_size(self, size: Vec2) -> Self
Fit the image to an exact size.
If Image::max_size
is set, this is guaranteed to never exceed that limit.
Sourcepub fn fit_to_fraction(self, fraction: Vec2) -> Self
pub fn fit_to_fraction(self, fraction: Vec2) -> Self
Fit the image to a fraction of the available space.
If Image::max_size
is set, this is guaranteed to never exceed that limit.
Sourcepub fn shrink_to_fit(self) -> Self
pub fn shrink_to_fit(self) -> Self
Fit the image to 100% of its available size, shrinking it if necessary.
This is a shorthand for Image::fit_to_fraction
with 1.0
for both width and height.
If Image::max_size
is set, this is guaranteed to never exceed that limit.
Sourcepub fn uv(self, uv: impl Into<Rect>) -> Self
pub fn uv(self, uv: impl Into<Rect>) -> Self
Select UV range. Default is (0,0) in top-left, (1,1) bottom right.
Sourcepub fn bg_fill(self, bg_fill: impl Into<Color32>) -> Self
pub fn bg_fill(self, bg_fill: impl Into<Color32>) -> Self
A solid color to put behind the image. Useful for transparent images.
Sourcepub fn tint(self, tint: impl Into<Color32>) -> Self
pub fn tint(self, tint: impl Into<Color32>) -> Self
Multiply image color with this. Default is WHITE (no tint).
Sourcepub fn rotate(self, angle: f32, origin: Vec2) -> Self
pub fn rotate(self, angle: f32, origin: Vec2) -> Self
Rotate the image about an origin by some angle
Positive angle is clockwise. Origin is a vector in normalized UV space ((0,0) in top-left, (1,1) bottom right).
To rotate about the center you can pass Vec2::splat(0.5)
as the origin.
Due to limitations in the current implementation, this will turn off rounding of the image.
Sourcepub fn corner_radius(self, corner_radius: impl Into<CornerRadius>) -> Self
pub fn corner_radius(self, corner_radius: impl Into<CornerRadius>) -> Self
Round the corners of the image.
The default is no rounding (CornerRadius::ZERO
).
Due to limitations in the current implementation, this will turn off any rotation of the image.
Sourcepub fn rounding(self, corner_radius: impl Into<CornerRadius>) -> Self
👎Deprecated: Renamed to corner_radius
pub fn rounding(self, corner_radius: impl Into<CornerRadius>) -> Self
corner_radius
Round the corners of the image.
The default is no rounding (CornerRadius::ZERO
).
Due to limitations in the current implementation, this will turn off any rotation of the image.
Sourcepub fn show_loading_spinner(self, show: bool) -> Self
pub fn show_loading_spinner(self, show: bool) -> Self
Show a spinner when the image is loading.
By default this uses the value of crate::Visuals::image_loading_spinners
.
Source§impl<'a> Image<'a>
impl<'a> Image<'a>
Sourcepub fn calc_size(
&self,
available_size: Vec2,
image_source_size: Option<Vec2>,
) -> Vec2
pub fn calc_size( &self, available_size: Vec2, image_source_size: Option<Vec2>, ) -> Vec2
Returns the size the image will occupy in the final UI.
pub fn load_and_calc_size(&self, ui: &Ui, available_size: Vec2) -> Option<Vec2>
pub fn size(&self) -> Option<Vec2>
Sourcepub fn uri(&self) -> Option<&str>
pub fn uri(&self) -> Option<&str>
Returns the URI of the image.
For animated images, returns the URI without the frame number.
pub fn image_options(&self) -> &ImageOptions
pub fn source(&'a self, ctx: &Context) -> ImageSource<'a>
Sourcepub fn load_for_size(
&self,
ctx: &Context,
available_size: Vec2,
) -> TextureLoadResult
pub fn load_for_size( &self, ctx: &Context, available_size: Vec2, ) -> TextureLoadResult
Load the image from its Image::source
, returning the resulting SizedTexture
.
The available_size
is used as a hint when e.g. rendering an svg.
§Errors
May fail if they underlying Context::try_load_texture
call fails.