Ascii Pixels
Convert raw image data to ascii art!
install
npm install ascii-pixels
usage
input raw image data, and optionally set contrast or invert colors
var options = {
contrast: 128,
invert: true
}
var ascii = asciiPixels(imageData, options)
The raw image data has the following format:
var imageData = {
data: frameData,
width: width,
height: height
}
You may optionally provide the pixel format: imageData.format = 'RGB24'
, by default it is RGB32
.
examples
Any format is supported as long as you can get the raw image data.
Here are a few examples:
node using jpeg-js
var fs = require('fs')
var jpeg = require('jpeg-js')
var asciiPixels = require('ascii-pixels')
var buffer = fs.readFileSync('image.jpg')
var imageData = jpeg.decode(buffer)
var ascii = asciiPixels(imageData)
console.log(ascii)
browser using canvas
var asciiPixels = require('ascii-pixels')
var img = new Image()
img.onload = function () {
var canvas = document.createElement('canvas')
canvas.width = img.width
canvas.height = img.height
var context = canvas.getContext('2d')
context.drawImage(img, 0, 0, img.width, img.height)
var imageData = context.getImageData(0, 0, canvas.width, canvas.height)
var ascii = asciiPixels(imageData)
console.log(ascii)
}
img.src = './nodejs-logo.png'
node using canvas
var fs = require('fs')
var Canvas = require('canvas')
var asciiPixels = require('ascii-pixels')
var img = new Canvas.Image
img.src = fs.readFileSync('nodejs-logo.png')
var canvas = new Canvas(img.width, img.height)
var context = canvas.getContext('2d')
context.drawImage(img, 0, 0, img.width, img.height)
var imageData = context.getImageData(0, 0, canvas.width, canvas.height)
var ascii = asciiPixels(imageData)
console.log(ascii)
sample output
C,
8@@@
0@@@
0@@@
@@ .::. CG 8@@@ G8 ...
t@@@@@@@@1 .:::::::;. @@@@@@@@@@ ,@@@@@@@@; . .
@@@@@ff@@@@@ ::::;;::;::: @@@@@0G@@@@@ @@@@@GG@@@@@ . ..,
@@@@ @@@@ ::::;;:;;;:: 0@@@ 8@@@ 8@@@ ,, @@, . ...
@@@@ @@@@ :::;;;;;;;:: 8@@@t ;@@@@ 8@@@L . ... ,
@@@, :@@@ ,:::;;:::,. i@@@@@@@@@@f ,@@@@@@8 . . ..
,,,: .@@@@; 8@@@ . ,
credit
This project is based on the awesome ascii-camera
by Andrei Gheorghe
license
MIT