🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

histogram

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

histogram

Provides a histogram data structure of png, gif and jpeg images using canvas. This library works in the browser as well

3.0.3
latest
Version published
Weekly downloads
7.1K
51.61%
Maintainers
2
Weekly downloads
 
Created

Histogram

NPM version Build Status Coverage Status Dependency Status

Provides a histogram data structure from PNG, JPEG or GIF files using canvas. This library works in nodejs and in any canvas supporting browser using histogram.min.js. In the browser histogram will be available in window.histogram You can also use require.js instead, keeping your global scope clean.

Example usage

NodeJS

var histogram = require('histogram');

histogram(fileName || Buffer, function (err, data) {
    console.log(filePath + ' has ' + data.colors.rgba + ' colors');
});

Browser with require.js

require(['path/to/histogram.min.js'], function (err, histogram) {
    histogram(URL || FileReader.result, function (data) {
        console.log(filePath + ' has ' + data.colors.rgba + ' colors');
    });
});

Vanilla browser

<script src="path/to/histogram.min.js"></script>
<script>
    histogram(URL || FileReader.result, function (err, data) {
        console.log(filePath + ' has ' + data.colors.rgba + ' colors');
    });
</script>

Data structure

{
    red: new Array(256), // Count of the number of times a value appears in the red channel
    green: new Array(256), // Count of the number of times a value appears in the green channel
    blue: new Array(256), // Count of the number of times a value appears in the blue channel
    alpha: new Array(256), // Count of the number of times a value appears in the alpha channel

    colors: {
        rgb: 0, // Number of unique RGB colors
        rgba: 0 // Number of unique RGBA colors
    },

    palettes: {
        rgb: [], // Array of unique colors in hex notation
        rgba: [] // Array of unique colors in hexa notation
    },

    greyscale: true, // Indicates whether all colors are greyscale or not
    alphachannel: false // Indicates that one or more pixels are translucent
}

License

This software is licensed under the beerware license. Do whatever you want with it. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return.

FAQs

Package last updated on 05 Mar 2019

Did you know?

Socket

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