#space #stars #graphics

bin+lib starsheet

伪天空的程序化图像

2 个版本

0.1.1 2020 年 11 月 17 日
0.1.0 2020 年 11 月 17 日

#739图像

CC0 许可证

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