libeffectengine/effects/bayer_2.rs
1use wasm_bindgen::prelude::*;
2
3use crate::effects::bayer::apply_diffusion_kernel;
4
5/// Applies Bayer dithering to a given image with the following 2x2 Bayer matrix:
6///
7/// ```
8/// | --- | --- |
9/// | 0 | 128 |
10/// | --- | --- |
11/// | 192 | 64 |
12/// | --- | --- |
13/// ```
14#[wasm_bindgen(js_name = bayer2)]
15pub fn effect() -> Vec<u8> {
16 let bayer_2_matrix: Vec<Vec<u8>> = vec![vec![0, 128], vec![192, 64]];
17
18 return apply_diffusion_kernel(
19 bayer_2_matrix.len(),
20 bayer_2_matrix.into_iter().flatten().collect::<Vec<u8>>(),
21 );
22}