#grid #image-processing #halftone

rotated-grid

CMYK半色调抖动等旋转网格计算

2 个版本

0.1.1 2023年7月8日
0.1.0 2023年7月2日
0.0.1 2023年7月1日

638图像

EUPL-1.2

12KB
197

Rust中的旋转网格

🎨 用于半色调抖动等。


此crate提供了一个生成器,用于沿旋转网格以指定频率枚举网格坐标。这可以在您想要为CMYK处理创建半色调抖动网格时很有用

CMYK grid examples

例如,请参阅我的 opencv-cartoon-effect 仓库以获取一个近乎真实世界的使用示例。

使用示例

use rotated_grid::{Angle, GridPositionIterator, GridCoordinate};

const WIDTH: usize = 16;
const HEIGHT: usize = 10;

fn main() {
    let halftone_grids = [
        ("Cyan", 15.0),
        ("Magenta", 75.0),
        ("Yellow", 0.0),
        ("Black", 45.0),
    ];
    
    for (name, angle) in halftone_grids {
        println!("{name} at {angle}°", name = name, angle = angle);
    
        let grid = GridPositionIterator::new(
            WIDTH as _,
            HEIGHT as _,
            7.0,
            7.0,
            0.0,
            0.0,
            Angle::<f64>::from_degrees(angle),
        );
    
        let (_, expected_max) = grid.size_hint();
        let mut count = 0;
    
        for GridCoordinate { x, y } in grid {
            println!("{x}, {y}", x = x, y = y);
            count += 1;
        }
    
        assert!(count <= expected_max.unwrap())
    }
}

您可以使用以下命令运行示例应用程序

cargo run --package cmyk

无运行时依赖项