image-output

2.4.2 • Public • Published

image-output Build Status unstable

Output image data to a destination: file, canvas, console, stdout, ImageData etc.

Usage

$ npm install image-output

var output = require('image-output')
 
// create chess pattern png from raw pixels data
output({
    data: [0,0,0,1, 1,1,1,1, 1,1,1,1, 0,0,0,1],
    width: 2,
    height: 2
}, 'chess.png')

API

output(source, destination?, shape|options?)

Output pixel data source to a destination based on options. Undefined destination displays image to console/stdout. The operation is done in sync fashion. destination and options may come in the opposite order for conveniency.

output([0,1,1,0], [2,2,1], 'a.png')

source

Shoud be an actual image data container, one of:

  • Canvas, Context2D, WebGLContext
  • ImageData or Object {data: Uint8Array, width, height}
  • DataURL or base64 string
  • Image, Video, ImageBitmap with resolved data
  • Array, Array of Arrays, Uint8Array, FloatArray with raw pixels
  • ArrayBuffer, Buffer
  • Ndarray

Handy for that purpose is image-pixels:

var pixels = require('image-pixels')
output(await pixels('image.png'), 'image-copy.png')

destination

Can be any image output destination:

Type Meaning
String File to create or path, in node. If includes extension, mimeType is detected from it.
Canvas2D, Context2D Render pixel data into a canvas. Canvas is resized to fit the image data. To avoid resizing, use options.clip property.
document, Element Create a canvas with diff data in document or element.
console Display image to console in browser or to terminal in node.
Array / FloatArray Write pixel data normalized to [0..1] range to a float-enabled array.
UintArray Put pixel data to any unsigned int array.
Buffer / ArrayBuffer Put pixel data into a buffer, possibly encoded into target format by options.type.
Ndarray Write pixel data into an ndarray.
ImageData Put data into ImageData instance, browser only.
Object Create data, width and height properties on an object.
Function Call a function with ImageData as argument.
Stream Send data to stream, eg. process.stdout.
WebStream TODO. Send data to stream, eg. process.stdout.

options

Property Meaning
type / mime Encode into target type, by default detected from file extension. By default image/png.
quality Defines encoding quality, 0..1, optional. By default 1.
...rest Rest of options is passed to encoder.
<!-- clip Defile clipping area rectangle from the initial data to save. -->

Customize color palette in terminal

You can choose color palette with flags or environment variable FORCE_COLOR=0123

node ./script.js --no-color
node ./script.js --color
node ./script.js --color=256
node ./script.js --color=16m

Related

Similar

License

© 2018 Dmitry Yv. MIT License.

Package Sidebar

Install

npm i image-output

Weekly Downloads

1,933

Version

2.4.2

License

MIT

Unpacked Size

31.5 kB

Total Files

9

Last publish

Collaborators

  • dy