This library is an easy and customizable way to generate optimized spritesheet through a CLI.
- JSON map generation (store all the images coords)
- Fast images processing using
sharp
- Space optimisation: optimize space in the spritesheet to store the more images possible
- Auto-resize : if there isn't enough space in the spritesheet the chunk will resize down until fit perfectly in the spritesheet
- Pass multiple input to get multiples sprites in the same texture
- (Incomming) Multiple textures generation
npm i -g @solaldr/spritesheet
Basic use :
spritesheet --input ./myimagesdir
option | type | description | default |
---|---|---|---|
--w , --width |
number | Width of the output spritesheet file | 2048 |
--h , --height |
number | Height of the output spritesheet file | 2048 |
--chunk.width , --c.w |
number | Width of a single chunk | auto (spread amoung disponible space) |
--chunk.height , --c.h |
number | Height of a single chunk | auto (spread amoung disponible space) |
--flexibility |
number | Resize factor of a chunk | auto (spread amoung disponible space) |
--output |
string | Output name of the spritesheet | output |
--input |
string | Path to parent directory of target images | |
--name |
string | Name of the spritesheet |
The input parameter describle the way images will be inported.
The output parameter describle in which directory the spritesheet will be generated.
The name of the spritesheet {name}.json
Represent the width (in pixels) of the output spritesheet. If width
is undefined, width
will calculated automatically
Notice: A power of two is recommanded
Represent the height(px) of the output spritesheet. If height
is undefined, height
will be equal to the width
value
Notice: A power of two is recommanded
Each image passed as an input in the CLI create a single chunk. A chunk is defined by the following properties: width
, height
, x
, y
Represent the width of a chunk. If this parameter is undefined, the computed width will be constrained by the spritesheet dimensions.
For instance, if a spritesheet has dimensions 2048x2048
, However the number of chunks, they will be resized automatically to fit inside this dimensions. See --flexibility
option for more informations.
Represent the height of a chunk. See chunk.width
behavior
The capacity of a chunk to resize in order to fit inside spritesheet dimensions. The parameter is ranged between 0 and 1.
Example: If --flexibility 0.5
a chunk will be able to resize down, up to 50% of his width
By default:
- If
chunk.width
orchunk.height
id defined,flexibility
will be equal to0
The chunks will not resize - If neither
chunk.width
orchunk.height
is defined,flexibility
will be equal to1
The chunks will resize to fit inside the spritesheet
Install dependencies
npm install
Install and init commitizen
npm install commitizen -g
commitizen init cz-conventional-changelog --save-dev --save-exact
npm run dev
Commit your work
npm run commit
MIT.