CLI tool for texture compression using ASTC, ETC, PVRTC and S3TC in a KTX container.
npm install @aidinabedi/texture-compressorsh
$ npm install texture-compressor
`
Live demo
Live demo
Documentation
Supported devices table
Supported parameters
Recommended parameters
CLI Usage
$3
`sh
$ node ./bin/texture-compressor -i input/example.png -t astc -c ASTC_4x4 -q astcmedium -o output/example-astc.ktx -y -m -vb
`
$3
`sh
$ node ./bin/texture-compressor -i input/example.png -t etc -c ETC2_RGB -q etcfast -o output/example-etc.ktx -y -m -vb
`
$3
`sh
$ node ./bin/texture-compressor -i input/example.png -t pvrtc -c PVRTC1_2 -q pvrtcnormal -o output/example-pvrtc.ktx -y -m -vb
`
$3
`sh
$ node ./bin/texture-compressor -i input/example.png -t s3tc -c DXT1 -q normal -o output/example-s3tc.ktx -y -m -vb
`
Module usage
`js
const { pack } = require('./dist/cli/lib/index');
pack({
type: 'astc',
input: 'input/example.png',
output: 'output/example-astc.ktx',
compression: 'ASTC_4x4',
quality: 'astcmedium',
verbose: true,
}).then(() => console.log('done!'));
`
Flags
$3
-i, --input [example: ./input/example.png] [required]
-o, --output [example: ./output/example.ktx] [required]
-t, --type [example: astc, etc, pvrtc, s3tc] [required]
-c, --compression [example: ASTC_4x4, ETC2_RGB, PVRTC1_2, DXT1] [required]
-q, --quality [example: astcmedium, etcfast, pvrtcnormal, normal] [required]
$3
-vb, --verbose [true / false, default: false] [not required]
-rs, --square ['no', '-', '+', default: +] [not required]
-rp, --pot ['no', '-', '+', default: +] [not required]
-m, --mipmap [true / false, default: false] [not required]
-y, --flipY [tue / false, default: false] [not required]
$3
Tool flags are not processed by texture-compressor but rather directly by the binary you are targeting itself.
For example adding --flags ["usesourceformat DXT1A" "alphaThreshold 200"] will pass usesourceformat DXT1A and alphaThreshold 200 directly to Crunch`.