Socket
Socket
Sign inDemoInstall

colormap

Package Overview
Dependencies
1
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    colormap

Easily output great looking predefined hex or rgb color maps


Version published
Weekly downloads
97K
increased by11.48%
Maintainers
1
Install size
405 kB
Created
Weekly downloads
 

Readme

Source

Easy Javascript Colormaps

hex or rgb

Build Status

all colormap output

var colormap = require('colormap')
options = {
  colormap: "jet"   // pick a builtin colormap or add your own
, nshades: 72       // how many divisions
, format: "hex"     // "hex" or "rgb" or "rgbaString"
, alpha: 1          // set an alpha value or a linear alpha mapping [start, end]
}
cg = colormap(options)

where leaving options = {} or undefined results in the defaults given above. There is a minimum number of nshades divisions you can select since the algorithms for each colormap have different requirements. colormap throws an error if there are too few divisions for the chosen colormap and gives the minimum number required. You should be safe with n > 10 for all the colormaps, though some require much less (much simpler to implemenent).

Options

The colormap can be any of the supported builtin colormaps. Or you can add your own. For an example of how to add your own see the json format available at:

colorscales = require('colormap/colorScales.json')

Colorscales are a sequence of objects containing an index and rgb key. The index defines how fast or slow the rgb values will change from one segment to the next. Ie.the steepness of the gradient between two segments. The rgb parameter can hold a length 3 or 4 array, depending if alpha values are included in the mapping.

Return values

An array of hex values ('hex') or an array of length 4 arrays containing rgba values ('rgb') or an rgba css string ('rgbaString').

Example

Here is a complete example which uses all built in color maps and utilizes some alpha channel mapping.

var cmap = require('colormap'),
    canvas = document.getElementById('canvas'),
    img = document.getElementById('background'),
    c = canvas.getContext('2d'),
    n = 48,
    colormaps = [
        'jet', 'hsv','hot','cool','spring','summer','autumn','winter','bone',
        'copper','greys','YIGnBu','greens','YIOrRd','bluered','RdBu','picnic',
        'rainbow','portland','blackbody','earth','electric'
    ];

img.onload = run;

function drawColorMaps (colormap, name, height) {
    /*
     * Build up the color ranges and add text
     */
    for (var j = 0; j < n; j++) {
        c.fillStyle = colormap[j];      // start ind at index 0
        c.fillRect(j*10, height, 10, 40);

    }
    c.fillStyle = '#262626';
    c.font = '16px Helvetica';
    c.fillText( name, n*10 + 10, height + 26);
}

function run() {
    var height, colormap;
    c.canvas.height = colormaps.length * 40 + img.height;
    c.canvas.width = 648;

    for (var i = 0; i < colormaps.length; i++) {
        height = i*40;
        colormap = cmap({
            colormap: colormaps[i],
            nshades: n,
            format: 'rgbaString'
        });
        drawColorMaps(colormap, colormaps[i], height);
    }

    /*
     * Now lets try some alpha maps overtop an image!
     */
    var ilast = i;
    c.drawImage(img, 0, i*40, 480, 240);

    for (var i = 0; i < colormaps.length; i++) {
        height = (ilast + i)*40;
        colormap = cmap({
            colormap: colormaps[i],
            nshades: n,
            format: 'rgbaString',
            alpha: [0, 1]
        });
        drawColorMaps(colormap, colormaps[i] + ' with transparency', height);
    }

    var dataURL = canvas.toDataURL();
    canvas.parentElement.removeChild(canvas);
    img.parentElement.removeChild(img);
    document.getElementById('canvasImg').src = dataURL;
}

Then just browserify it and throw it in some html and it will output the image above!

Keywords

FAQs

Last updated on 25 Oct 2014

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc