imgpacker

0.1.5 • Public • Published

imgpacker npm

This is a pure Node.js module for package multiple images(max 4) to a single image(in diffrent chanel).

Requirements

  • Node.js v6

Installation

$ npm install imgpacker --save

Command line

command to pack metallic, ao and roughness textures to a single image, and convert roughness to smoothness.

imgpacker -R metallic.png -G ao.png -A roughness.png --flip A -o mask.png
Usage: imgpacker [options] [command]

  Options:
    -w <size>      output image width (default: 1024)
    -h <size>      output image height (default: 1024)
    -R <path>      red channel input image
    -G <path>      green channel input image
    -B <path>      blue channel input image
    -A <path>      alpha channel input image
    --rc <RGBA>    which channel to read from the red channel input image
    --gc <RGBA>    which channel to read from the green channel input image
    --bc <RGBA>    which channel to read from the blue channel input image
    --ac <RGBA>    which channel to read from the alpha channel input image
    --flip <RGBA>  channels need flip(255-origin), if you want to flip R channel then pass "R"
    -o <path>      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 data

Example

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);
});

Readme

Keywords

Package Sidebar

Install

npm i imgpacker

Weekly Downloads

0

Version

0.1.5

License

MIT

Unpacked Size

7.92 kB

Total Files

5

Last publish

Collaborators

  • steel1990