@ botharness/像素班纳
种子像素艺术自然旗分十幕,为剖面头. 每个横幅被绘制为150×50并缩放整个数字,精确到1500×500(3:1),所以每个像素都保持了一块脆的平方形.
![]()
import { pixelBannerImage, seededBannerRecipe } from '@botharness/pixel-banner';
const recipe = seededBannerRecipe('DeepSeekBot'); // { scene: 'sea', seed: 2786543041 }, same name, same banner
const { width, height, data } = pixelBannerImage(recipe); // 1500×500 RGBA
const canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
canvas.getContext('2d')!.putImageData(new ImageData(data, width, height), 0, 0);
canvas.toBlob((png) => upload(png!), 'image/png');
BANNER_SCENES数字 :spring, (中文(简体) ),summer, (中文(简体) ),autumn, (中文(简体) ),winter, (中文(简体) ),sea, (中文(简体) ),mountain, (中文(简体) ),desert, (中文(简体) ),forest, (中文(简体) ),night-sky, (中文(简体) ),space。 。 。 .- 食谱是简单的JSON:
{ scene, seed }时seed是32位无符号整数.isPixelBannerRecipe验证保存的 . seededBannerRecipe(name):同名总是给出相同的食谱.pixelBannerPixels(recipe):150×50源像素. 画在150×50画布上 用CSS放大image-rendering: pixelated如果您不需要完整大小的文件.pixelBannerImage(recipe, { scale }): 像素重现scale时间( 默认)BANNER_SCALE, 10),没有平滑.scalePixels(image, scale)对任何图像都一样.
输出为RGBA,行相干,每像素有4个字节,完全不透明. 它只使用整数和基本浮点算法,因此同一种配方在每个JavaScript引擎中给出了相同的字节. test/fixtures/banner-golden.json 锁定每个场景的输出;改变已存在的横幅需要一个新的场景名称,而不是新的固定.