Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@mapbox/blend

Package Overview
Dependencies
Maintainers
14
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mapbox/blend

High speed image blending and quantization

  • 2.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
14
Created
Source

node-blend

This module can re-encode one or more images of the same size. It supports stiching multiple images together into a single image, alpha-compositing, color quantization, and various compression options to produce highly optimized output.

Build Status

Usage

var blend = require('blend');
var image1; // Contains a compressed PNG image as a buffer.
var image2;
blend([ image1, image2 ], function(err, result) {
    // result contains the blended result image compressed as PNG.
});

blend([ image1, image2 ], {
    format: 'jpeg',
    quality: 90
}, function(err, result) {
    // result contains the blended result image compressed as JPEG.
});

blend([
    { buffer: images[1], x: 20, y: 10 },
    { buffer: images[0], x: -30, y: 90 }
], {
    width: 256,
    height: 256
}, function(err, data) {
    // result contains the blended result image compressed as JPEG.
});

Options

The first argument is an array of either Buffers containing image data, or Objects with the following potential properties:

  • buffer: Buffer containing image data
  • x: image offset in the X dimension
  • y: image offset in the Y dimension

The second argument is an optional options Object with the following potential properties:

  • format: jpeg, png, or webp
  • quality: integer indicating the quality of the final image. Meaning and range differs per format. For JPEG and webp the range is from 0-100. It defaults to 80. The lower the number the lower image quality and smaller the final image size. For PNG range is from 2-256. It means the # of colors to reduce the image to using. The lower the number the lower image quality and smaller the final image size.
  • width: integer, default 0: final width of blended image. If options provided with no width value it will default to 0
  • height: integer, default 0: final width of blended image. If options provided with no height value it will default to 0
  • reencode: boolean, default false
  • matte: when alpha is used this is the color to initialize the buffer to (reencode will be set to true automatically when a matte is supplied)
  • compression: level of compression to use when format is png. The higher value indicates higher compression and implies slower encodeing speeds. The lower value indicates faster encoding but larger final images. Default is 6. If the encoder is libpng then the valid range is between 1 and 9. If the encoder is miniz then the valid range is between 1 and 10. The reason for this difference is that miniz has a special "UBER" compression mode that tries to be extremely small at the potential cost of being extremely slow.
  • palette: pass a blend.Palette object to be used to reduced PNG images to a fixed array of colors
  • mode: octree or hextree - the PNG quantization method to use, from Mapnik: https://github.com/mapnik/mapnik/wiki/OutputFormats. Octree only support a few alpha levels, but is faster while Hextree supports many alpha levels.
  • encoder: libpng or miniz - the PNG encoder to use. libpng is standard while miniz is experimental but faster.

Installation

npm install @mapbox/blend@latest

Development

To run tests for this module, run npm install --dev to install the testing framework, then npm test. Tests require Imagemagick for its compare utility.

FAQs

Package last updated on 09 Oct 2018

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

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc