63 lines
2.0 KiB
Plaintext
63 lines
2.0 KiB
Plaintext
i make this tool for my ds to make loading texture easier...
|
|
desgined for my personal use only....
|
|
its not really optimized and use really minimal error checking
|
|
|
|
please use something more stable like ptexconv or grit instead!
|
|
|
|
since ptexconv and grit just simply convert image data into loose Binary
|
|
i tried to create header with the metadata information of the image
|
|
|
|
the idea is to simply load image data without worrying about image metadata.
|
|
the metadata contain basic stuff like width, height, format, etc...
|
|
|
|
color palette are embedded in the file.
|
|
a palette hash is provided. this can be used to comparing
|
|
whether another image uses the same palette
|
|
|
|
usage: sillyimage -i <input image> -o <output dir> [options]
|
|
|
|
options:
|
|
-i, --input input files [required] [may be repeated]
|
|
-o, --out output directory [required]
|
|
-h, --help shows help message and exits
|
|
-v, --version prints version information and exits
|
|
-f, --format texture format { rgb256, rgb16, indexed4, indexed16, indexed256, indexed32a3, indexed8a5 } [default: "rgb16"]
|
|
|
|
binary format:
|
|
[string] sillyimg (0x676D69796C6C6973 in hex or 7452728928599042419 in decimal (uint64))
|
|
[uint8] version (current version is 13)
|
|
[uint8] format
|
|
0 - RGB256
|
|
1 - RGB16
|
|
2 - INDEXED4
|
|
3 - INDEXED16
|
|
4 - INDEXED256
|
|
5 - INDEXED32A3
|
|
6 - INDEXED8A5
|
|
7 - PALETTE16
|
|
[uint16] width
|
|
[uint16] height
|
|
[uint16] palette count
|
|
[uint32] palette hash
|
|
[uint32] compress size
|
|
[uint32] original size
|
|
[palette buffer]
|
|
[image buffer]
|
|
|
|
TODO:
|
|
[x] bitpacking for indexed format
|
|
[ ] bitpacking for alpha indexed format
|
|
[ ] convert image using predefined palette
|
|
[ ] output preview image
|
|
[ ] improve error handling
|
|
[x] compression
|
|
|
|
dependencies:
|
|
argparse (https://github.com/p-ranav/argparse)
|
|
stb_image (https://github.com/nothings/stb)
|
|
libimagequant (https://github.com/ImageOptim/libimagequant)
|
|
murmurhash.c (https://github.com/jwerle/murmurhash.c)
|
|
Timer.h from cherno (https://gist.github.com/TheCherno/b2c71c9291a4a1a29c889e76173c8d14)
|
|
|
|
license:
|
|
GPL v3 |