Module truster::canvas [−][src]
Expand description
A 2D canvas which represents an image of RGB colors. Pixels can be individually changed individually. Get the canvas in PPM format with Canvas::to_ppm.
Examples
A new (black) canvas can be created with new:
let canvas = Canvas::new(10, 20); assert_eq!(canvas.width(), 10); assert_eq!(canvas.height(), 20);
Pixels can be accessed and mutated with indexing:
use truster::color::Color; let mut canvas = Canvas::new(10, 20); let red = Color::new(1.0, 0.0, 0.0); canvas[[2, 3]] = red; assert_eq!(canvas[[2, 3]], red);
Save a canvas in PPM format with Canvas::to_ppm:
use truster::color::Color; use std::fs::File; use std::io::prelude::*; fn main() -> std::io::Result<()> { let mut canvas = Canvas::new(5, 3); canvas[[0, 0]] = Color::new(1.5, 0.0, 0.0); canvas[[2, 1]] = Color::new(0.0, 0.5, 0.0); canvas[[4, 2]] = Color::new(-0.5, 0.0, 1.0); let mut file = File::create("foo.ppm")?; canvas.to_ppm(&mut file); let mut file = File::open("foo.ppm")?; let mut output = String::new(); file.read_to_string(&mut output); assert_eq!(output, "P3 5 3 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 "); Ok(()) }
Structs
A 2D image. See the module’s documentation for more information.