Crates.io | image_buffer |
lib.rs | image_buffer |
version | 0.2.0 |
source | src |
created_at | 2017-01-14 11:10:31.650338 |
updated_at | 2017-02-19 08:41:02.543431 |
description | Provides a buffer type to ease the work with images and different color types. |
homepage | https://github.com/PistonDevelopers/image_buffer |
repository | https://github.com/PistonDevelopers/image_buffer.git |
max_upload_size | |
id | 8057 |
size | 52,254 |
Provides an image buffer and various color types (API Documentation).
//!An example of generating Julia fractals.
extern crate num;
extern crate image_buffer;
use num::complex::Complex;
fn main() {
let max_iterations = 256u16;
let imgx = 800;
let imgy = 800;
let scalex = 4.0 / imgx as f32;
let scaley = 4.0 / imgy as f32;
// Create a new ImgBuf with width: imgx and height: imgy
let mut imgbuf = image_buffer::ImageBuffer::new(imgx, imgy);
// Iterate over the coordiantes and pixels of the image
for (x, y, pixel) in imgbuf.enumerate_pixels_mut() {
let cy = y as f32 * scaley - 2.0;
let cx = x as f32 * scalex - 2.0;
let mut z = Complex::new(cx, cy);
let c = Complex::new(-0.4, 0.6);
let mut i = 0;
for t in (0..max_iterations) {
if z.norm() > 2.0 {
break
}
z = z * z + c;
i = t;
}
// Create an 8bit pixel of type Luma and value i
// and assign in to the pixel at position (x, y)
*pixel = image::Gray([i as u8]);
}
}