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