Crate bokeh_creator

Crate bokeh_creator 

Source
Expand description

Tests License Version

§Bokeh Creator

Simple library to replicate real world lens kernels written in Rust. Currently it requires the std library.

§Install

Add this crate to your project by adding it in your Cargo.toml:

cargo add bokeh-creator

The Image crate is optional, as there is a method to render when you specify coordinates only.

§Usage

use bokeh_creator::{Renderer, Settings};
use image::Rgba32FImage;

fn main() {
    let settings = Settings {
        angle: 195.3,
        curvature: 0.1,
        ..Default::default()
    };
    let mut result = Rgba32FImage::new(256, 256);
    let renderer = Renderer::render_to_image(&mut result, settings);
    // Do whatever you need to do with the result :)
}

§Examples

1_expected.jpg

use bokeh_creator::Settings;
Settings::default();

2_expected.jpg

use bokeh_creator::{FilterType, Settings};
Settings {
    filter_type: FilterType::BLADE,
    angle: 195.3,
    curvature: 0.1,
    ..Default::default()
};

3_expected.jpg

use bokeh_creator::{FilterType, Settings};
Settings {
    filter_type: FilterType::BLADE,
    angle: 90.0,
    blades: 15,
    ..Default::default()
};

4_expected.jpg

use bokeh_creator::Settings;
Settings {
    aspect_ratio: 0.5,
    ..Default::default()
};

5_expected.jpg

use bokeh_creator::Settings;
Settings {
    aspect_ratio: 2.0,
    ..Default::default()
};

6_expected.jpg

use bokeh_creator::Settings;
Settings {
    ring_color: 0.5,
    inner_color: 0.9,
    ring_size: 0.5,
    ..Default::default()
};

7_expected.jpg

use bokeh_creator::{Noise, Settings};
Settings {
    noise: {
        Noise { 
            size: 0.3, 
            intensity: 1.0, 
            ..Default::default()
        }
    },
    ..Default::default()
};

8_expected.jpg

use bokeh_creator::{Noise, Settings};
Settings {
    noise: {
        Noise { 
            intensity: 0.0, 
            ..Default::default()
        }
    },
    ..Default::default()
};

9_expected.jpg

use bokeh_creator::{Noise, Settings};
Settings {
    noise: {
        Noise { 
            seed: 30, 
            ..Default::default()
        }
    },
    ..Default::default()
};

Structs§

Noise
Noise specific settings.
Renderer
Object to render bokeh kernels
Settings
Data object that contains all bokeh settings.

Enums§

FilterType
Enum that contains the type of filter used for the bokeh.