No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
.gitignore
LICENSE.txt
README.md
index.js
package.json

README.md

color-temperature

Color Spectrum

Converts color temperature in Kelvin to a color in RGB color space -- and vice versa.

The conversion is designed to be fast and usable for image processing. More details on color temperature and the algorithm can be found here.

Installation

$ npm install --save color-temperature

Usage

var ct = require('color-temperature');

//convert kelvin to RGB
// eg convert typical candlelight (1850K ) to RGB
var rgb = ct.colorTemperature2rgb(1850);

var red = rgb.red;
var green = rgb.green;
var blue = rgb.blue;

RGB color is represented in JSON format: An RGB of [0, 128, 255] would be represented as

{
  red : 0,
  green : 128,
  blue : 255
}

Examples

Often, the convertor is deployed as part of an image processing loop. The following example uses streams to generate a PNG similar to that at the top of this README file.

var fs = require('fs');
var png_encoder = require('png-stream');
var ct = require('color-temperature');
var width = 500;
var height = 100;
var kelvinStart = 10;
var kelvinEnd = 40000;

var pixels = new Buffer(width * height * 3);
for (var w = 0; w < width; w += 1) {
  for (var h = 0; h < height; h += 1) {
      var i = ((h*width)+w)*3;

      kelvin = ((kelvinEnd-kelvinStart)/width)* w + kelvinStart;
      var rgb = ct.colorTemperature2rgb(kelvin);

      pixels[i] = rgb.red;
      pixels[i + 1] = rgb.green;
      pixels[i + 2] = rgb.blue;
  }
}

var enc = new png_encoder.Encoder(width, height);
enc.pipe(fs.createWriteStream('color-temperature-'+kelvinStart+'-'+kelvinEnd+'.png'));
enc.end(pixels);

There are examples in the examples directory.

API

NOTE The conversions use approximations and are suitable for photo-mainpulation and other non-critical uses.

Accuracy is best between 1000K and 40000K.

require('color-temperature').colorTemperature2rgb(kelvin);

Convert a color temperature in Kelvin to RGB. This method uses an approximation based on a curve fit of data from a sparse RGB to Kelvin mapping.

require('color-temperature').colorTemperature2rgbUsingTH(kelvin);

A JavaScript port of the original algorithm from Tanner Helland. This method is mainly here for comparison purposes. Generally, colorTemperature2rgb provides more accurate results.

require('color-temperature').rgb2colorTemperature(rgb);

Convert a color in RGB format to a color temperature in Kelvin.

License

The code is released under an MIT license.

Release History

  • 0.1.0 Initial release

NPM