Struct epaint::image::ColorImage
source · pub struct ColorImage {
pub size: [usize; 2],
pub pixels: Vec<Color32>,
}
Expand description
A 2D RGBA color image in RAM.
Fields§
§size: [usize; 2]
width, height.
pixels: Vec<Color32>
The pixels, row by row, from top to bottom.
Implementations§
source§impl ColorImage
impl ColorImage
sourcepub fn new(size: [usize; 2], color: Color32) -> Self
pub fn new(size: [usize; 2], color: Color32) -> Self
Create an image filled with the given color.
sourcepub fn from_rgba_unmultiplied(size: [usize; 2], rgba: &[u8]) -> Self
pub fn from_rgba_unmultiplied(size: [usize; 2], rgba: &[u8]) -> Self
Create a ColorImage
from flat un-multiplied RGBA data.
This is usually what you want to use after having loaded an image file.
Panics if size[0] * size[1] * 4 != rgba.len()
.
§Example using the image
crate:
fn load_image_from_path(path: &std::path::Path) -> Result<egui::ColorImage, image::ImageError> {
let image = image::io::Reader::open(path)?.decode()?;
let size = [image.width() as _, image.height() as _];
let image_buffer = image.to_rgba8();
let pixels = image_buffer.as_flat_samples();
Ok(egui::ColorImage::from_rgba_unmultiplied(
size,
pixels.as_slice(),
))
}
fn load_image_from_memory(image_data: &[u8]) -> Result<ColorImage, image::ImageError> {
let image = image::load_from_memory(image_data)?;
let size = [image.width() as _, image.height() as _];
let image_buffer = image.to_rgba8();
let pixels = image_buffer.as_flat_samples();
Ok(ColorImage::from_rgba_unmultiplied(
size,
pixels.as_slice(),
))
}
pub fn from_rgba_premultiplied(size: [usize; 2], rgba: &[u8]) -> Self
sourcepub fn from_gray(size: [usize; 2], gray: &[u8]) -> Self
pub fn from_gray(size: [usize; 2], gray: &[u8]) -> Self
Create a ColorImage
from flat opaque gray data.
Panics if size[0] * size[1] != gray.len()
.
sourcepub fn from_gray_iter(
size: [usize; 2],
gray_iter: impl Iterator<Item = u8>,
) -> Self
pub fn from_gray_iter( size: [usize; 2], gray_iter: impl Iterator<Item = u8>, ) -> Self
Alternative method to from_gray
.
Create a ColorImage
from iterator over flat opaque gray data.
Panics if size[0] * size[1] != gray_iter.len()
.
sourcepub fn as_raw_mut(&mut self) -> &mut [u8] ⓘ
pub fn as_raw_mut(&mut self) -> &mut [u8] ⓘ
A view of the underlying data as &mut [u8]
sourcepub fn region(&self, region: &Rect, pixels_per_point: Option<f32>) -> Self
pub fn region(&self, region: &Rect, pixels_per_point: Option<f32>) -> Self
Create a new Image from a patch of the current image. This method is especially convenient for screenshotting a part of the app
since region
can be interpreted as screen coordinates of the entire screenshot if pixels_per_point
is provided for the native application.
The floats of emath::Rect
are cast to usize, rounding them down in order to interpret them as indices to the image data.
Panics if region.min.x > region.max.x || region.min.y > region.max.y
, or if a region larger than the image is passed.
sourcepub fn from_rgb(size: [usize; 2], rgb: &[u8]) -> Self
pub fn from_rgb(size: [usize; 2], rgb: &[u8]) -> Self
Create a ColorImage
from flat RGB data.
This is what you want to use after having loaded an image file (and if you are ignoring the alpha channel - considering it to always be 0xff)
Panics if size[0] * size[1] * 3 != rgb.len()
.
pub fn width(&self) -> usize
pub fn height(&self) -> usize
Trait Implementations§
source§impl Clone for ColorImage
impl Clone for ColorImage
source§fn clone(&self) -> ColorImage
fn clone(&self) -> ColorImage
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ColorImage
impl Debug for ColorImage
source§impl Default for ColorImage
impl Default for ColorImage
source§fn default() -> ColorImage
fn default() -> ColorImage
source§impl From<ColorImage> for ImageData
impl From<ColorImage> for ImageData
source§fn from(image: ColorImage) -> Self
fn from(image: ColorImage) -> Self
source§impl PartialEq for ColorImage
impl PartialEq for ColorImage
impl Eq for ColorImage
impl StructuralPartialEq for ColorImage
Auto Trait Implementations§
impl Freeze for ColorImage
impl RefUnwindSafe for ColorImage
impl Send for ColorImage
impl Sync for ColorImage
impl Unpin for ColorImage
impl UnwindSafe for ColorImage
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)