bokeh-creator

Crates.iobokeh-creator
lib.rsbokeh-creator
version0.1.17
created_at2025-10-20 15:41:27.519249+00
updated_at2026-01-09 18:20:30.942704+00
descriptionEasy to use library to replicate real world lens kernels
homepage
repositoryhttps://codeberg.org/gillesvink/bokeh-creator
max_upload_size
id1892191
size155,238
Gilles Vink (gillesvink)

documentation

https://docs.rs/bokeh-creator

README

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.into(),
    angle: 195.3,
    curvature: 0.1,
    ..Default::default()
};

3_expected.jpg

use bokeh_creator::{FilterType, Settings};
Settings {
    filter_type: FilterType::Blade.into(),
    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()
};
Commit count: 83

cargo fmt