Expand description
§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-creatorThe 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

use bokeh_creator::Settings;
Settings::default();
use bokeh_creator::{FilterType, Settings};
Settings {
filter_type: FilterType::BLADE,
angle: 195.3,
curvature: 0.1,
..Default::default()
};
use bokeh_creator::{FilterType, Settings};
Settings {
filter_type: FilterType::BLADE,
angle: 90.0,
blades: 15,
..Default::default()
};
use bokeh_creator::Settings;
Settings {
aspect_ratio: 0.5,
..Default::default()
};
use bokeh_creator::Settings;
Settings {
aspect_ratio: 2.0,
..Default::default()
};
use bokeh_creator::Settings;
Settings {
ring_color: 0.5,
inner_color: 0.9,
ring_size: 0.5,
..Default::default()
};
use bokeh_creator::{Noise, Settings};
Settings {
noise: {
Noise {
size: 0.3,
intensity: 1.0,
..Default::default()
}
},
..Default::default()
};
use bokeh_creator::{Noise, Settings};
Settings {
noise: {
Noise {
intensity: 0.0,
..Default::default()
}
},
..Default::default()
};
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§
- Filter
Type - Enum that contains the type of filter used for the bokeh.