Skip to content

dy/image-output

Repository files navigation

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?, 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.

source

Shoud be an actual image data container, one of:

  • Canvas, Context2D, WebGLContext
  • ImageData
  • 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.

options

Property Meaning
width, height Explicitly indicate input data shape (columns, rows), if input has no dimensions info.
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.

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 Iv. MIT License.

About

Output image to a file, stream, canvas, console, buffer or any other destination

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •