2 个版本

0.0.2 2023 年 4 月 24 日
0.0.1 2022 年 10 月 28 日

#308 in 图形 API

MIT 许可证

98KB
3K SLoC

mgart

Mgart

Build Status Codecov Latest Version Downloads Library Docs License: MIT Contributor Covenant

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就会为你做剩下的工作。生成的图像看起来像

Buddhabrot

你可以在这里examples/文件夹中找到更多示例艺术品及其配置。

支持算法

以下列出了Mgart已经支持或计划在未来版本中支持的算法。

分形

创建各种类型分形艺术的算法。

曼德布罗特和朱利亚集

  • 还有许多不同的渲染方法尚未实现

佛陀布罗特

  • 佛陀布罗特

  • 反Buddhabrot

  • 星云Brot

其他

  • 分形火焰

  • 牛顿分形

  • 奇异吸引子

  • L-系统

  • 图灵模式

AI 艺术

  • 类似DeepDream的过滤器

  • 文本到图像

贡献

欢迎贡献!有关详细信息,请参阅CONTRIBUTING.md。在贡献时,请确保遵循Contributor Covenant v2.1

许可证

Mgart采用MIT许可。有关详细信息,请参阅LICENSE

依赖关系

~17MB
~276K SLoC