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::Uriwill load the image using the asynchronous loading process.ImageSource::Byteswill also load the image using the asynchronous loading process, but with lower latency.ImageSource::Texturewill use the provided texture.
See load for more information.
§Examples
// Using it in a layout:
ui.add(
egui::Image::new(egui::include_image!("../../assets/ferris.png"))
.rounding(5.0)
);// Using it just to paint:
egui::Image::new(egui::include_image!("../../assets/ferris.png"))
.rounding(5.0)
.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>>) -> Image<'a>
pub fn new(source: impl Into<ImageSource<'a>>) -> Image<'a>
Load the image from some source.
Sourcepub fn from_uri(uri: impl Into<Cow<'a, str>>) -> Image<'a>
pub fn from_uri(uri: impl Into<Cow<'a, str>>) -> Image<'a>
Load the image from a URI.
See ImageSource::Uri.
Sourcepub fn from_texture(texture: impl Into<SizedTexture>) -> Image<'a>
pub fn from_texture(texture: impl Into<SizedTexture>) -> Image<'a>
Load the image from an existing texture.
See ImageSource::Texture.
Sourcepub fn from_bytes(
uri: impl Into<Cow<'static, str>>,
bytes: impl Into<Bytes>,
) -> Image<'a>
pub fn from_bytes( uri: impl Into<Cow<'static, str>>, bytes: impl Into<Bytes>, ) -> Image<'a>
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) -> Image<'a>
pub fn texture_options(self, texture_options: TextureOptions) -> Image<'a>
Texture options used when creating the texture.
Sourcepub fn max_width(self, width: f32) -> Image<'a>
pub fn max_width(self, width: f32) -> Image<'a>
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) -> Image<'a>
pub fn max_height(self, height: f32) -> Image<'a>
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) -> Image<'a>
pub fn max_size(self, size: Vec2) -> Image<'a>
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) -> Image<'a>
pub fn maintain_aspect_ratio(self, value: bool) -> Image<'a>
Whether or not the ImageFit should maintain the image’s original aspect ratio.
Sourcepub fn fit_to_original_size(self, scale: f32) -> Image<'a>
pub fn fit_to_original_size(self, scale: f32) -> Image<'a>
Fit the image to its original size with some scaling.
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) -> Image<'a>
pub fn fit_to_exact_size(self, size: Vec2) -> Image<'a>
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) -> Image<'a>
pub fn fit_to_fraction(self, fraction: Vec2) -> Image<'a>
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) -> Image<'a>
pub fn shrink_to_fit(self) -> Image<'a>
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>) -> Image<'a>
pub fn uv(self, uv: impl Into<Rect>) -> Image<'a>
Select UV range. Default is (0,0) in top-left, (1,1) bottom right.
Sourcepub fn bg_fill(self, bg_fill: impl Into<Color32>) -> Image<'a>
pub fn bg_fill(self, bg_fill: impl Into<Color32>) -> Image<'a>
A solid color to put behind the image. Useful for transparent images.
Sourcepub fn tint(self, tint: impl Into<Color32>) -> Image<'a>
pub fn tint(self, tint: impl Into<Color32>) -> Image<'a>
Multiply image color with this. Default is WHITE (no tint).
Sourcepub fn rotate(self, angle: f32, origin: Vec2) -> Image<'a>
pub fn rotate(self, angle: f32, origin: Vec2) -> Image<'a>
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 rounding(self, rounding: impl Into<Rounding>) -> Image<'a>
pub fn rounding(self, rounding: impl Into<Rounding>) -> Image<'a>
Round the corners of the image.
The default is no rounding (Rounding::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) -> Image<'a>
pub fn show_loading_spinner(self, show: bool) -> Image<'a>
Show a spinner when the image is loading.
By default this uses the value of Visuals::image_loading_spinners.
Source§impl<'a> Image<'a>
impl<'a> Image<'a>
Sourcepub fn calc_size(
&self,
available_size: Vec2,
original_image_size: Option<Vec2>,
) -> Vec2
pub fn calc_size( &self, available_size: Vec2, original_image_size: Option<Vec2>, ) -> Vec2
Returns the size the image will occupy in the final UI.
pub fn load_and_calc_size( &self, ui: &mut Ui, available_size: Vec2, ) -> Option<Vec2>
pub fn size(&self) -> Option<Vec2>
pub fn image_options(&self) -> &ImageOptions
pub fn source(&self) -> &ImageSource<'a>
Sourcepub fn load_for_size(
&self,
ctx: &Context,
available_size: Vec2,
) -> Result<TexturePoll, LoadError>
pub fn load_for_size( &self, ctx: &Context, available_size: Vec2, ) -> Result<TexturePoll, LoadError>
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.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Image<'a>
impl<'a> RefUnwindSafe for Image<'a>
impl<'a> Send for Image<'a>
impl<'a> Sync for Image<'a>
impl<'a> Unpin for Image<'a>
impl<'a> UnwindSafe for Image<'a>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
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>
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>
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<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.