JSPM

color-temperature

0.2.7
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1976
  • Score
    100M100P100Q135365F
  • License MIT

Kelvin color temperature to RGB convertor

Package Exports

  • color-temperature

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (color-temperature) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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-temperture

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