4 个版本 (破坏性更新)
0.4.0 | 2022年10月17日 |
---|---|
0.3.0 | 2022年9月10日 |
0.2.0 | 2022年7月6日 |
0.1.0 | 2022年6月24日 |
#733 in 图像
180KB
3K SLoC
星图马赛克
用于生成带有各种几何图案的彩色马赛克图像的库。
如何创建马赛克图像
创建马赛克很简单
- 设置结果图像的大小;
- 选择马赛克基于的形状,
- 设置其位置、旋转和缩放
- 最后构建所选类型的马赛克。
然后可以使用任何颜色或渐变来绘制这个马赛克。
示例
以下代码创建了这个项目的标志(您上面看到的那个)。
use palette::LinSrgb;
use starry_mosaic::{coloring_method::RadialGradient, Mosaic, MosaicBuilder, Vector};
let mosaic = MosaicBuilder::default()
.set_regular_polygon_shape(13)
.set_image_size(800, 800)
.set_center(Vector::new(400.0, 400.0))
.set_uniform_scale(0.75)
.build_star()
.unwrap();
let gradient = vec![
(0.125, LinSrgb::new(1.0f64, 0.0, 0.0)),
(0.275, LinSrgb::new(1.0f64, 0.5, 0.0)),
(0.425, LinSrgb::new(1.0f64, 1.0, 0.0)),
(0.575, LinSrgb::new(0.0f64, 1.0, 0.0)),
(0.725, LinSrgb::new(0.0f64, 0.75, 1.0)),
(0.875, LinSrgb::new(0.0f64, 0.0, 1.0)),
];
let mosaic_image = mosaic.draw(RadialGradient::new(
gradient,
Vector::new(540.0, 320.0),
20.0,
Vector::new(400.0, 400.0),
360.0,
0.25
));
let save_result = mosaic_image.save("target/logo.png");
assert!(save_result.is_ok());
更多图像
要查看更多图像,请访问本项目仓库中的 images
目录。
依赖项
~17MB
~136K SLoC