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(),
))
}
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
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Default for ColorImage
impl Default for ColorImage
source§fn default() -> ColorImage
fn default() -> ColorImage
Returns the “default value” for a type. Read more
source§impl<'de> Deserialize<'de> for ColorImage
impl<'de> Deserialize<'de> for ColorImage
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl From<ColorImage> for ImageData
impl From<ColorImage> for ImageData
source§fn from(image: ColorImage) -> Self
fn from(image: ColorImage) -> Self
Converts to this type from the input type.
source§impl PartialEq<ColorImage> for ColorImage
impl PartialEq<ColorImage> for ColorImage
source§fn eq(&self, other: &ColorImage) -> bool
fn eq(&self, other: &ColorImage) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.