Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/steel1990/imgpacker
A pure nodejs image packer tool
https://github.com/steel1990/imgpacker
Last synced: about 1 month ago
JSON representation
A pure nodejs image packer tool
- Host: GitHub
- URL: https://github.com/steel1990/imgpacker
- Owner: steel1990
- Created: 2017-07-14T06:59:38.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-06T09:03:53.000Z (almost 2 years ago)
- Last Synced: 2024-08-09T10:03:57.002Z (5 months ago)
- Language: JavaScript
- Size: 12.2 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
imgpacker [![npm][npm-image]][npm-url]
========
This is a pure Node.js module for package multiple images(max 4) to a single image(in diffrent chanel).Requirements
========
* Node.js v6Installation
========
```
$ npm install imgpacker --save
```Command line
========
command to pack metallic, ao and roughness textures to a single image, and convert roughness to smoothness.```shell
imgpacker -R metallic.png -G ao.png -A roughness.png --flip A -o mask.png
``````
Usage: imgpacker [options] [command]Options:
-w output image width (default: 1024)
-h output image height (default: 1024)
-R red channel input image
-G green channel input image
-B blue channel input image
-A alpha channel input image
--rc which channel to read from the red channel input image
--gc which channel to read from the green channel input image
--bc which channel to read from the blue channel input image
--ac which channel to read from the alpha channel input image
--flip channels need flip(255-origin), if you want to flip R channel then pass "R"
-o output file
--help display help for command
```API
========
### pack(opt)
* opt.width: output image width, find the max width if you don't pass.
* opt.height: output image height, find the max height if you don't pass.
* opt.R: output image R chanel image data
* opt.R.buffer: the source image file buffer(fs.readFile)
* opt.R.converter: (number, number[]) => number; pixel value convert function
* opt.R.channel: pixel value from which channel in origin image
* opt.G: output image G chanel image data
* opt.B: output image B chanel image data
* opt.A: output image A chanel image dataExample
========
```js
const fs = require('fs');
const imgPacker = require('imgpacker');imgPacker.pack({
width: 1024,
height: 1024,
R: {
buffer: fs.readFileSync('./rustedmetalmix-ao.png')
},
G: {
buffer: fs.readFileSync('./rustedmetalmix-roughness.png')
},
B: {
buffer: fs.readFileSync('./rustedmetalmix-metalness.png')
}
}).then(buffer => {
fs.writeFileSync('./packed.png', buffer);
});
```[npm-image]: https://img.shields.io/npm/v/imgpacker.svg?style=flat-square
[npm-url]: https://www.npmjs.com/package/imgpacker