pub struct RgbImage { /* private fields */ }
Expand description
Creates a struct holding a raw RGB image
Implementations§
Source§impl RgbImage
impl RgbImage
Sourcepub fn new(
data: &[u8],
w: i32,
h: i32,
depth: ColorDepth,
) -> Result<RgbImage, FltkError>
pub fn new( data: &[u8], w: i32, h: i32, depth: ColorDepth, ) -> Result<RgbImage, FltkError>
Initializes a new raw RgbImage
, copies the data and handles its lifetime.
If you need to work with RGB data,
§Errors
Errors on invalid or unsupported image format
Examples found in repository?
examples/rgb.rs (line 18)
3fn main() {
4 let app = app::App::default();
5 let mut wind = window::Window::default().with_size(400, 400);
6 let mut frame = frame::Frame::default_fill();
7 wind.make_resizable(true);
8 wind.end();
9 wind.show();
10 frame.draw(move |f| {
11 let mut fb: Vec<u8> = vec![0u8; (f.w() * f.h() * 4) as usize];
12 for (iter, pixel) in fb.chunks_exact_mut(4).enumerate() {
13 let x = iter % f.w() as usize;
14 let y = iter / f.w() as usize;
15 let (red, green, blue) = utils::hex2rgb((x ^ y) as u32);
16 pixel.copy_from_slice(&[red, green, blue, 255]);
17 }
18 let mut image = image::RgbImage::new(&fb, f.w(), f.h(), ColorDepth::Rgba8)
19 .unwrap()
20 .to_srgb_image()
21 .unwrap()
22 .blur(50)
23 .unwrap()
24 .convert(ColorDepth::Rgb8)
25 .unwrap();
26 image.draw(f.x(), f.y(), f.w(), f.h());
27 });
28
29 app.run().unwrap();
30}
Sourcepub unsafe fn from_data(
data: &[u8],
w: i32,
h: i32,
depth: ColorDepth,
) -> Result<RgbImage, FltkError>
pub unsafe fn from_data( data: &[u8], w: i32, h: i32, depth: ColorDepth, ) -> Result<RgbImage, FltkError>
Sourcepub unsafe fn new_ext(
data: &[u8],
w: i32,
h: i32,
depth: i32,
line_data: i32,
) -> Result<RgbImage, FltkError>
pub unsafe fn new_ext( data: &[u8], w: i32, h: i32, depth: i32, line_data: i32, ) -> Result<RgbImage, FltkError>
Sourcepub unsafe fn from_data_ext(
data: &[u8],
w: i32,
h: i32,
depth: i32,
line_data: i32,
) -> Result<RgbImage, FltkError>
pub unsafe fn from_data_ext( data: &[u8], w: i32, h: i32, depth: i32, line_data: i32, ) -> Result<RgbImage, FltkError>
Sourcepub fn from_pixmap(image: &Pixmap) -> RgbImage
pub fn from_pixmap(image: &Pixmap) -> RgbImage
Creates an RgbImage
from a pixmap
Sourcepub fn convert(&self, new_depth: ColorDepth) -> Result<RgbImage, FltkError>
pub fn convert(&self, new_depth: ColorDepth) -> Result<RgbImage, FltkError>
Convert from one ColorDepth
to another ColorDepth
Examples found in repository?
examples/rounded_images.rs (line 61)
46fn main() {
47 let app = app::App::default().with_scheme(app::Scheme::Gleam);
48 app::background(0, 0, 0);
49 let image = image::SharedImage::load("screenshots/calc2.jpg")
50 .unwrap()
51 .as_rgb_image()
52 .unwrap();
53
54 let mut wind = window::Window::new(100, 100, 800, 400, "Hello from rust");
55 let row = group::Flex::default()
56 .row()
57 .with_size(800, 200)
58 .center_of_parent();
59 for i in 1..=4 {
60 let color_depth = enums::ColorDepth::from_u8(i).unwrap();
61 let image = image.convert(color_depth).unwrap();
62 RoundImageBox::new(100, image);
63 }
64 row.end();
65 wind.end();
66 wind.show();
67
68 app.run().unwrap();
69}
More examples
examples/rgb.rs (line 24)
3fn main() {
4 let app = app::App::default();
5 let mut wind = window::Window::default().with_size(400, 400);
6 let mut frame = frame::Frame::default_fill();
7 wind.make_resizable(true);
8 wind.end();
9 wind.show();
10 frame.draw(move |f| {
11 let mut fb: Vec<u8> = vec![0u8; (f.w() * f.h() * 4) as usize];
12 for (iter, pixel) in fb.chunks_exact_mut(4).enumerate() {
13 let x = iter % f.w() as usize;
14 let y = iter / f.w() as usize;
15 let (red, green, blue) = utils::hex2rgb((x ^ y) as u32);
16 pixel.copy_from_slice(&[red, green, blue, 255]);
17 }
18 let mut image = image::RgbImage::new(&fb, f.w(), f.h(), ColorDepth::Rgba8)
19 .unwrap()
20 .to_srgb_image()
21 .unwrap()
22 .blur(50)
23 .unwrap()
24 .convert(ColorDepth::Rgb8)
25 .unwrap();
26 image.draw(f.x(), f.y(), f.w(), f.h());
27 });
28
29 app.run().unwrap();
30}
Sourcepub fn convert_transparent(&self) -> Result<RgbImage, FltkError>
pub fn convert_transparent(&self) -> Result<RgbImage, FltkError>
Convert black pixels to transparent
Sourcepub fn blur(&self, radius: u32) -> Result<RgbImage, FltkError>
pub fn blur(&self, radius: u32) -> Result<RgbImage, FltkError>
Blur the image Adapted from https://www.cairographics.org/cookbook/blur.c/
Examples found in repository?
examples/rgb.rs (line 22)
3fn main() {
4 let app = app::App::default();
5 let mut wind = window::Window::default().with_size(400, 400);
6 let mut frame = frame::Frame::default_fill();
7 wind.make_resizable(true);
8 wind.end();
9 wind.show();
10 frame.draw(move |f| {
11 let mut fb: Vec<u8> = vec![0u8; (f.w() * f.h() * 4) as usize];
12 for (iter, pixel) in fb.chunks_exact_mut(4).enumerate() {
13 let x = iter % f.w() as usize;
14 let y = iter / f.w() as usize;
15 let (red, green, blue) = utils::hex2rgb((x ^ y) as u32);
16 pixel.copy_from_slice(&[red, green, blue, 255]);
17 }
18 let mut image = image::RgbImage::new(&fb, f.w(), f.h(), ColorDepth::Rgba8)
19 .unwrap()
20 .to_srgb_image()
21 .unwrap()
22 .blur(50)
23 .unwrap()
24 .convert(ColorDepth::Rgb8)
25 .unwrap();
26 image.draw(f.x(), f.y(), f.w(), f.h());
27 });
28
29 app.run().unwrap();
30}
Sourcepub fn to_srgb_image(&self) -> Result<RgbImage, FltkError>
pub fn to_srgb_image(&self) -> Result<RgbImage, FltkError>
Returns an SRGB image
Examples found in repository?
examples/rgb.rs (line 20)
3fn main() {
4 let app = app::App::default();
5 let mut wind = window::Window::default().with_size(400, 400);
6 let mut frame = frame::Frame::default_fill();
7 wind.make_resizable(true);
8 wind.end();
9 wind.show();
10 frame.draw(move |f| {
11 let mut fb: Vec<u8> = vec![0u8; (f.w() * f.h() * 4) as usize];
12 for (iter, pixel) in fb.chunks_exact_mut(4).enumerate() {
13 let x = iter % f.w() as usize;
14 let y = iter / f.w() as usize;
15 let (red, green, blue) = utils::hex2rgb((x ^ y) as u32);
16 pixel.copy_from_slice(&[red, green, blue, 255]);
17 }
18 let mut image = image::RgbImage::new(&fb, f.w(), f.h(), ColorDepth::Rgba8)
19 .unwrap()
20 .to_srgb_image()
21 .unwrap()
22 .blur(50)
23 .unwrap()
24 .convert(ColorDepth::Rgb8)
25 .unwrap();
26 image.draw(f.x(), f.y(), f.w(), f.h());
27 });
28
29 app.run().unwrap();
30}
Sourcepub fn set_scaling_algorithm(algorithm: RgbScaling)
pub fn set_scaling_algorithm(algorithm: RgbScaling)
Sets the scaling algorithm
Sourcepub fn scaling_algorithm() -> RgbScaling
pub fn scaling_algorithm() -> RgbScaling
Gets the scaling algorithm
Trait Implementations§
Source§impl ImageExt for RgbImage
impl ImageExt for RgbImage
Source§fn copy_sized(&self, w: i32, h: i32) -> Self
fn copy_sized(&self, w: i32, h: i32) -> Self
Performs a deep copy of the image but to a new size. This will make use of the scaling algorithm when resizing.
Source§fn draw(&mut self, arg2: i32, arg3: i32, arg4: i32, arg5: i32)
fn draw(&mut self, arg2: i32, arg3: i32, arg4: i32, arg5: i32)
Draws the image at the presupplied coordinates and size
Source§fn draw_ext(
&mut self,
arg2: i32,
arg3: i32,
arg4: i32,
arg5: i32,
cx: i32,
cy: i32,
)
fn draw_ext( &mut self, arg2: i32, arg3: i32, arg4: i32, arg5: i32, cx: i32, cy: i32, )
Draws the image at the presupplied coordinates and size and offset cx, cy
Source§fn as_image_ptr(&self) -> *mut Fl_Image
fn as_image_ptr(&self) -> *mut Fl_Image
Returns a pointer of the image
Source§unsafe fn from_image_ptr(ptr: *mut Fl_Image) -> Self
unsafe fn from_image_ptr(ptr: *mut Fl_Image) -> Self
Transforms a raw image pointer to an image Read more
Source§fn as_rgb_image(&self) -> Result<RgbImage, FltkError>
fn as_rgb_image(&self) -> Result<RgbImage, FltkError>
Transforms the image into an
RgbImage
Read moreSource§fn scale(
&mut self,
width: i32,
height: i32,
proportional: bool,
can_expand: bool,
)
fn scale( &mut self, width: i32, height: i32, proportional: bool, can_expand: bool, )
Scales the image
Source§fn count(&self) -> i32
fn count(&self) -> i32
Return the count of pointers in an image (Pixmaps have more than 1, bitmaps have 0, Rgb based images have 1)
Source§fn depth(&self) -> ColorDepth
fn depth(&self) -> ColorDepth
Gets the image’s depth
Source§fn was_deleted(&self) -> bool
fn was_deleted(&self) -> bool
Checks if the image was deleted
Source§unsafe fn into_image<I: ImageExt>(self) -> I
unsafe fn into_image<I: ImageExt>(self) -> I
Transforms an Image base into another Image Read more
impl Eq for RgbImage
impl Send for RgbImage
Available on non-crate feature
single-threaded
only.impl Sync for RgbImage
Available on non-crate feature
single-threaded
only.Auto Trait Implementations§
impl Freeze for RgbImage
impl RefUnwindSafe for RgbImage
impl Unpin for RgbImage
impl UnwindSafe for RgbImage
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
Mutably borrows from an owned value. Read more