[−][src]Macro imageproc::rgba_image
Helper for defining RGBA images.
Pixels are delineated by square brackets, columns are
separated by commas and rows are separated by semi-colons.
By default a subpixel type of u8
is used but this can be
overridden, as shown in the examples.
Examples
use image::{ImageBuffer, Rgba, RgbaImage}; // An empty image with pixel type Rgba<u8> let empty = rgba_image!(); assert_pixels_eq!( empty, RgbaImage::from_raw(0, 0, vec![]).unwrap() ); // A single pixel image with pixel type Rgba<u8> let single_pixel = rgba_image!([1, 2, 3, 4]); assert_pixels_eq!( single_pixel, RgbaImage::from_raw(1, 1, vec![1, 2, 3, 4]).unwrap() ); // A single row image with pixel type Rgba<u8> let single_row = rgba_image!([1, 2, 3, 10], [4, 5, 6, 20]); assert_pixels_eq!( single_row, RgbaImage::from_raw(2, 1, vec![1, 2, 3, 10, 4, 5, 6, 20]).unwrap() ); // An image with 2 rows and 2 columns let image = rgba_image!( [1, 2, 3, 10], [ 4, 5, 6, 20]; [7, 8, 9, 30], [10, 11, 12, 40]); let equivalent = RgbaImage::from_raw(2, 2, vec![ 1, 2, 3, 10, 4, 5, 6, 20, 7, 8, 9, 30, 10, 11, 12, 40 ]).unwrap(); assert_pixels_eq!(image, equivalent); // An empty image with pixel type Rgba<i16>. let empty_i16 = rgba_image!(type: i16); // An image with 2 rows, 3 columns and pixel type Rgba<i16> let image_i16 = rgba_image!(type: i16, [1, 2, 3, 10], [ 4, 5, 6, 20]; [7, 8, 9, 30], [10, 11, 12, 40]); let expected_i16 = ImageBuffer::<Rgba<i16>, Vec<i16>>::from_raw(2, 2, vec![ 1, 2, 3, 10, 4, 5, 6, 20, 7, 8, 9, 30, 10, 11, 12, 40], ).unwrap();