2 个版本
0.1.1 | 2020 年 11 月 17 日 |
---|---|
0.1.0 | 2020 年 11 月 17 日 |
#739 在 图像
27KB
186 行
Starsheet
生成不存在天空的令人愉悦的图像。
一个库和一个 CLI 二进制文件。
未来:最终,为了乐趣,一个 GUI!
二进制文件
使用 cargo install starsheet
安装,然后使用 starsheet
运行。
目前,只能输出 PNG 文件。您可以使用 -w 标志更改 --width,使用 -h 标志更改 --height。生成的星星数量是一种 密度。密度,即每 100 平方像素的星星数量,可以使用 -s 选项更改。我发现大约 20 的密度是好的。
这里 是一个 1000x1000 的图像示例,密度为 20。命令看起来像这样
starsheet-w1000 -h1000 -s20example
目前无法更改星星亮度的百分比,但 这即将到来!
库
当前文档并不太出色!幸运的是,只有一个结构体,有大约 5 个方法。文档将会改进。在此之前,您可以查看二进制源代码 这里,或下面的示例。
use starsheet::Space;
// Generates an image with the same parameters as the example image
fn main() {
// Create a new Space struct with a width and height of 1000 pixels
let mut space = Space::new(1000, 1000);
// Fill space randomly with stars at a density of 20 stars per 100 pixels^2
space.fill_randomly(20);
// Get the width and height from space
let width = space.width();
let height = space.height();
// Consume space and get the underlying pixel data. Each u8 is a black
// level, so the image is greyscale.
let data = space.to_data();
// ... From here you can manipulate the image further by operating on the
// pixel data or feed it to some kind of image encoder to write as a file.
}
依赖项
~1.5MB
~27K SLoC