2 个版本
0.0.2 | 2023 年 4 月 24 日 |
---|---|
0.0.1 | 2022 年 10 月 28 日 |
#308 in 图形 API
98KB
3K SLoC
Mgart
Machine Generated Art(简称 Mgart,发音为 "em-gart")是一个 Rust crate 和 CLI 应用程序,用于生成算法艺术。
目录
安装
Cargo
请注意,如果您想使用 cargo
安装 Mgart,则需要在自己的计算机上安装 Rust 工具链。
Mgart 通过 crates.io 进行分发,可以使用以下命令安装:
cargo install mgart
如果您想安装特定版本的 Mgart,请使用 --version
标志
cargo install --version $VERSION
如果您已安装了旧版本的 Mgart 并希望将其更新到最新版本,请使用 --force
标志
cargo install --force mgart
通过运行以下命令来检查 Mgart 是否已成功安装:
mgart -V
这将打印出您已安装的版本号。
从源码安装
如果您想进行开发或想要使用最新、不稳定版本,可以从源码安装 Mgart。请注意,如果您想从源码构建 Mgart,则需要在您的计算机上安装 Rust 工具链。
首先,克隆 Mgart 仓库并进入它
git clone https://github.com/jofas/mgart && cd mgart
如果您想在这个目录中工作,可能是因为您想为 Mgart 做贡献,您可以通过以下方式执行 CLI 应用程序
cargo run --release -- $FILE
$FILE
是包含您的算法的文件的路径(见 示例 部分)。请注意,将 --release
标志添加到命令中可以显著提高执行速度。
您还可以通过在 Mgart 源码目录中运行以下命令来从源码安装 Mgart,而不仅仅是工作在源码目录中
cargo install --path .
这将编译Mgart并使程序可供用户直接从命令行执行。通过运行以下命令检查安装:
mgart -V
示例
如果你运行mgart -h
,你会发现在Mgart中,输入参数是一个文件。该文件的内容包含你希望生成的艺术品的配置。目前,Mgart支持Json和Jsonnet输入文件。输入文件包含一个algorithm
对象的数组,每个对象描述了你希望创建的一个艺术品。这是一个示例Json文件,可以生成单个艺术品,即Buddhabrot的渲染
[
{
"algorithm": "buddhabrot",
"filename": "buddhabrot_20000.png",
"width": 3800,
"height": 2000,
"center": {
"im": -0.35,
"re": 0
},
"zoom": 0.45,
"exponent": 2,
"iter": 20000,
"rotation": 90,
"sample_count": 500000000,
"sampler": {
"r": 3,
"type": "uniform_polar"
},
"post_processing": [
{
"process": "normalize"
},
{
"bin_count": 256,
"contrast_limit": 500,
"process": "clahe",
"tile_size_x": 380,
"tile_size_y": 200
},
{
"h": 0.0005,
"n": 7,
"process": "smoothing",
"type": "non_local_means",
"window_size": 21
}
],
"color_map": {
"gradient": {
"factor": 1,
"type": "linear"
},
"map": [
{
"b": 0,
"g": 0,
"r": 0,
"type": "rgb"
},
{
"b": 255,
"g": 255,
"r": 255,
"type": "rgb"
}
]
}
}
]
你只需运行mgart $FILE
,Mgart就会为你做剩下的工作。生成的图像看起来像
你可以在这里的examples/
文件夹中找到更多示例艺术品及其配置。
支持算法
以下列出了Mgart已经支持或计划在未来版本中支持的算法。
分形
创建各种类型分形艺术的算法。
曼德布罗特和朱利亚集
- 还有许多不同的渲染方法尚未实现
佛陀布罗特
-
佛陀布罗特
-
反Buddhabrot
-
星云Brot
其他
-
分形火焰
-
牛顿分形
-
奇异吸引子
-
L-系统
-
图灵模式
AI 艺术
-
类似DeepDream的过滤器
-
文本到图像
贡献
欢迎贡献!有关详细信息,请参阅CONTRIBUTING.md。在贡献时,请确保遵循Contributor Covenant v2.1。
许可证
Mgart采用MIT许可。有关详细信息,请参阅LICENSE。
依赖关系
~17MB
~276K SLoC