gm-palette
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

gm-palette

Graphicsmagic Palette

Dominant color and palette using graphicsmagick

Akash Dathan Twitter follow

Getting started

First download and install GraphicsMagick. In Mac OS X, you can simply use Homebrew and do:

$ brew install graphicsmagick

then use npm to install the module:

$ npm install gm-palette

Features

  • Retrieve dominant color and palette.
  • GIF format supported.
  • Provide the count of palette colors to obtain.
  • The input can be path to image, buffer or a readable stream

Basic Usage

const gmPalette = require('gm-palette')

//If callback is not provided, Promise is returned.
gmPalette.dominantColor('path/to/image.jpg', (error, data) => {
  if(error) console.log('Error', error)
  console.log('Result : ', data)

  //{ r: 54, g: 56, b: 62 }
})

//If callback is not provided, Promise is returned.
gmPalette.dominantColor('/path/to/animated.gif[0]', (error, data) => {
  if(error) console.log('Error', error)
  console.log('Result : ', data)

  //{ r: 54, g: 56, b: 62 }
})


const count = 10 // Required number of palette colors.
//If callback is not provided, Promise is returned.
gmPalette.palette('path/to/image.jpg', count,  (error, data) => { 
  // If count is not provided, a default value of 10 is taken.
  if(error) console.log('Error', error)
  console.log('Result : ', data)
  /*
  [ 
    { r: 28, g: 31, b: 38 },
    { r: 59, g: 61, b: 66 },
    { r: 62, g: 64, b: 69 },
    { r: 64, g: 63, b: 70 },
    { r: 65, g: 65, b: 63 },
    { r: 72, g: 72, b: 78 },
    { r: 122, g: 124, b: 130 },
    { r: 125, g: 128, b: 132 },
    { r: 155, g: 156, b: 159 },
    { r: 214, g: 215, b: 217 }
  ]
  */
})

gmPalette.palette('/path/to/animated.gif[0]', count,  (error, data) => { 
  // If count is not provided, a default value of 10 is taken.
  if(error) console.log('Error', error)
  console.log('Result : ', data)
  /*
  [ 
    { r: 28, g: 31, b: 38 },
    { r: 59, g: 61, b: 66 },
    { r: 62, g: 64, b: 69 },
    { r: 64, g: 63, b: 70 },
    { r: 65, g: 65, b: 63 },
    { r: 72, g: 72, b: 78 },
    { r: 122, g: 124, b: 130 },
    { r: 125, g: 128, b: 132 },
    { r: 155, g: 156, b: 159 },
    { r: 214, g: 215, b: 217 }
  ]
  */
})

Buffer

const gmPalette   = require('gm-palette'),
      imageBuffer = require('fs').readFileSync('/path/to/image.jpg'),
      count       = 10


//If callback is not provided, Promise is returned.
gmPalette.dominantColor(imageBuffer, (error, data) => {
  if(error) console.log('Error', error)
  console.log('Result : ', data)

  //{ r: 54, g: 56, b: 62 }
})

//If callback is not provided, Promise is returned.
gmPalette.palette(imageBuffer, count,  (error, data) => { 
  // If count is not provided, a default value of 10 is taken.
  if(error) console.log('Error', error)
  console.log('Result : ', data)
  /*
  [ 
    { r: 28, g: 31, b: 38 },
    { r: 59, g: 61, b: 66 },
    { r: 62, g: 64, b: 69 },
    { r: 64, g: 63, b: 70 },
    { r: 65, g: 65, b: 63 },
    { r: 72, g: 72, b: 78 },
    { r: 122, g: 124, b: 130 },
    { r: 125, g: 128, b: 132 },
    { r: 155, g: 156, b: 159 },
    { r: 214, g: 215, b: 217 }
  ]
  */
})

Stream

const gmPalette      = require('gm-palette'),
      readableStream = fs.createReadStream('/path/to/my/img.jpg'),
      count          = 10

//If callback is not provided, Promise is returned.
gmPalette.dominantColor(readableStream, (error, data) => {
  if(error) console.log('Error', error)
  console.log('Result : ', data)

  //{ r: 54, g: 56, b: 62 }
})

//If callback is not provided, Promise is returned.
gmPalette.palette(readableStream, count,  (error, data) => { 
  // If count is not provided, a default value of 10 is taken.
  if(error) console.log('Error', error)
  console.log('Result : ', data)
  /*
  [ 
    { r: 28, g: 31, b: 38 },
    { r: 59, g: 61, b: 66 },
    { r: 62, g: 64, b: 69 },
    { r: 64, g: 63, b: 70 },
    { r: 65, g: 65, b: 63 },
    { r: 72, g: 72, b: 78 },
    { r: 122, g: 124, b: 130 },
    { r: 125, g: 128, b: 132 },
    { r: 155, g: 156, b: 159 },
    { r: 214, g: 215, b: 217 }
  ]
  */
})

Author

/gm-palette/

    Package Sidebar

    Install

    npm i gm-palette

    Weekly Downloads

    5

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    53.2 kB

    Total Files

    12

    Last publish

    Collaborators

    • akashdathan