image_buffer Build Status

Image buffer abstraction

Provides an image buffer and various color types (API Documentation).

Usage

```rust //!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]);

}

} ```