1.0.3 • Published 6 years ago

sparrow-gm-palette v1.0.3

Weekly downloads
9
License
MIT
Repository
github
Last release
6 years ago

@xvan/gm-palette

Dominant color and palette using graphicsmagick.

orf

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 }
})
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)
  /*
[ { color: { r: 11, g: 26, b: 33 }, ratio: 53.84098912877048 },
  { color: { r: 63, g: 63, b: 70 }, ratio: 25.757234726688104 },
  { color: { r: 101, g: 120, b: 151 }, ratio: 6.984994640943194 },
  { color: { r: 158, g: 58, b: 45 }, ratio: 8.84734343898331 },
  { color: { r: 185, g: 174, b: 191 }, ratio: 4.569438064614913 } ]
  */
})

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

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

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