stroke around quogs

This commit is contained in:
Rhiannon Morris 2024-12-13 03:37:51 +01:00
parent 0a59aa66f6
commit 2d7ebe8c1e
6 changed files with 54 additions and 46 deletions

View file

@ -1,21 +1,22 @@
{ {
"belly1": [39, 67], "stroke": [ 0, 0 ],
"belly2": [92, 95], "belly1": [ 59, 87 ],
"claws": [191, 334], "belly2": [ 112, 115 ],
"cuffs": [221, 215], "claws": [ 211, 354 ],
"eyes": [685, 42], "cuffs": [ 241, 235 ],
"eyeshine": [685, 42], "eyes": [ 705, 62 ],
"fins1": [227, 60], "eyeshine": [ 705, 62 ],
"fins2": [226, 61], "fins1": [ 247, 80 ],
"fins3": [229, 195], "fins2": [ 246, 81 ],
"lines": [0, 0], "fins3": [ 249, 215 ],
"masks": [643, 1], "lines": [ 20, 20 ],
"outer": [2, 22], "masks": [ 663, 21 ],
"spines": [337, 50], "outer": [ 22, 42 ],
"static": [219, 41], "spines": [ 357, 70 ],
"stripes": [219, 221], "static": [ 239, 61 ],
"vitiligo1": [4, 22], "stripes": [ 239, 241 ],
"vitiligo2": [102, 134], "vitiligo1": [ 24, 42 ],
"vitiligo3": [46, 129], "vitiligo2": [ 122, 154 ],
"vitiligo4": [221, 56] "vitiligo3": [ 66, 149 ],
"vitiligo4": [ 241, 76 ]
} }

BIN
rainbow-quox/back/stroke.webp (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -1,21 +1,22 @@
{ {
"belly1": [186, 92], "stroke": [ 0, 0 ],
"belly2": [186, 91], "belly1": [ 206, 112 ],
"claws": [3, 168], "belly2": [ 206, 111 ],
"cuffs": [42, 160], "claws": [ 23, 188 ],
"eyes": [223, 52], "cuffs": [ 62, 180 ],
"eyeshine": [223, 52], "eyes": [ 243, 72 ],
"fins1": [381, 31], "eyeshine": [ 243, 72 ],
"fins2": [387, 35], "fins1": [ 401, 51 ],
"fins3": [495, 140], "fins2": [ 407, 55 ],
"lines": [1, 0], "fins3": [ 515, 160 ],
"masks": [173, 3], "lines": [ 21, 20 ],
"outer": [28, 43], "masks": [ 193, 23 ],
"spines": [372, 23], "outer": [ 48, 63 ],
"static": [50, 52], "spines": [ 392, 43 ],
"stripes": [50, 168], "static": [ 70, 72 ],
"vitiligo1": [34, 23], "stripes": [ 70, 188 ],
"vitiligo2": [198, 92], "vitiligo1": [ 54, 43 ],
"vitiligo3": [214, 312], "vitiligo2": [ 218, 112 ],
"vitiligo4": [647, 71] "vitiligo3": [ 234, 332 ],
"vitiligo4": [ 667, 91 ]
} }

BIN
rainbow-quox/front/stroke.webp (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -43,10 +43,10 @@
</div> </div>
<div id=pic-holder> <div id=pic-holder>
<canvas id=main width=1000 height=673> <canvas id=main width=1040 height=713>
the canvas failed to load. sorry. the canvas failed to load. sorry.
</canvas> </canvas>
<canvas id=aux width=1000 height=673></canvas> <canvas id=aux width=1040 height=713></canvas>
</div> </div>
<div id=palette-holder> <div id=palette-holder>

View file

@ -37,8 +37,8 @@ function loadImageData(url: string, buf?: Buffer): Promise<ImageData> {
else return loadDataFresh(url); else return loadDataFresh(url);
} }
const WIDTH = 1000; const WIDTH = 1040;
const HEIGHT = 673; const HEIGHT = 713;
function makeBuffer(width = WIDTH, height = HEIGHT): Buffer { function makeBuffer(width = WIDTH, height = HEIGHT): Buffer {
return new OffscreenCanvas(width, height).getContext('2d')!; return new OffscreenCanvas(width, height).getContext('2d')!;
@ -49,13 +49,13 @@ function makeBufferIfLocks(width?: number, height?: number): Buffer | undefined
else return undefined; else return undefined;
} }
export type Layer = 'static' | 'eyeshine' | Color.Layer; export type Layer = 'stroke' | 'static' | 'eyeshine' | Color.Layer;
// in compositing order // in compositing order
export const allLayers: Layer[] = export const allLayers: Layer[] =
['static', 'outer', 'spines', 'stripes', 'cuffs', 'fins1', 'fins2', 'fins3', ['stroke', 'static', 'outer', 'spines', 'stripes', 'cuffs', 'fins1', 'fins2',
'belly1', 'belly2', 'masks', 'claws', 'vitiligo1', 'vitiligo2', 'vitiligo3', 'fins3', 'belly1', 'belly2', 'masks', 'claws', 'vitiligo1', 'vitiligo2',
'vitiligo4', 'eyes', 'eyeshine', 'lines']; 'vitiligo3', 'vitiligo4', 'eyes', 'eyeshine', 'lines'];
function makeLayerInfo<A>(f: (l: Layer) => A): Record<Layer, A> { function makeLayerInfo<A>(f: (l: Layer) => A): Record<Layer, A> {
return Object.fromEntries(allLayers.map(l => [l, f(l)])) as Record<Layer, A>; return Object.fromEntries(allLayers.map(l => [l, f(l)])) as Record<Layer, A>;