picture-tuber
Advanced tools
Comparing version 1.0.2 to 2.0.0
#!/usr/bin/env node | ||
var argv = require('optimist') | ||
.usage('Usage: picture-tube OPTIONS { file or uri }') | ||
.demand(1) | ||
.describe('cols', 'number of columns to use for output') | ||
.argv | ||
; | ||
var tube = require('../')(argv); | ||
var request = require('request'); | ||
var fs = require('fs'); | ||
var argv = require("optimist") | ||
.usage("Usage: picture-tube OPTIONS { file }") | ||
.demand(1) | ||
.describe("cols", "number of columns to use for output").argv; | ||
var tube = require("../")(argv); | ||
var fs = require("fs"); | ||
var file = argv._[0]; | ||
if (/^https?:/.test(file)) { | ||
request(file).pipe(tube); | ||
if (file === "-") { | ||
process.stdin.pipe(tube); | ||
} else { | ||
fs.createReadStream(file).pipe(tube); | ||
} | ||
else if (file === '-') { | ||
process.stdin.pipe(tube) | ||
} | ||
else { | ||
fs.createReadStream(file).pipe(tube); | ||
} | ||
tube.pipe(process.stdout); |
79
index.js
@@ -1,44 +0,43 @@ | ||
var PNG = require('png-js'); | ||
var charm = require('charm'); | ||
var x256 = require('x256'); | ||
var buffers = require('buffers'); | ||
var es = require('event-stream'); | ||
var PNG = require("png-js"); | ||
var charm = require("charm"); | ||
var x256 = require("x256"); | ||
var buffers = require("buffers"); | ||
var es = require("event-stream"); | ||
var Stream = require('stream').Stream; | ||
var Stream = require("stream").Stream; | ||
module.exports = function (opts) { | ||
if (!opts) opts = {}; | ||
if (!opts.cols) opts.cols = 80; | ||
var c = charm(); | ||
var bufs = buffers(); | ||
var ws = es.writeArray(function (err, bufs) { | ||
var data = buffers(bufs).slice(); | ||
var png = new PNG(data); | ||
png.decode(function (pixels) { | ||
var dx = png.width / opts.cols; | ||
var dy = 2 * dx; | ||
for (var y = 0; y < png.height; y += dy) { | ||
for (var x = 0; x < png.width; x += dx) { | ||
var i = (Math.floor(y) * png.width + Math.floor(x)) * 4; | ||
var ix = x256([ pixels[i], pixels[i+1], pixels[i+2] ]); | ||
if (pixels[i+3] > 0) { | ||
c.background(ix).write(' '); | ||
} | ||
else { | ||
c.display('reset').write(' '); | ||
} | ||
} | ||
c.display('reset').write('\r\n'); | ||
} | ||
c.display('reset').end(); | ||
}); | ||
module.exports = function(opts) { | ||
if (!opts) opts = {}; | ||
if (!opts.cols) opts.cols = 80; | ||
var c = charm(); | ||
var bufs = buffers(); | ||
var ws = es.writeArray(function(err, bufs) { | ||
var data = buffers(bufs).slice(); | ||
var png = new PNG(data); | ||
png.decode(function(pixels) { | ||
var dx = png.width / opts.cols; | ||
var dy = 2 * dx; | ||
for (var y = 0; y < png.height; y += dy) { | ||
for (var x = 0; x < png.width; x += dx) { | ||
var i = (Math.floor(y) * png.width + Math.floor(x)) * 4; | ||
var ix = x256([pixels[i], pixels[i + 1], pixels[i + 2]]); | ||
if (pixels[i + 3] > 0) { | ||
c.background(ix).write(" "); | ||
} else { | ||
c.display("reset").write(" "); | ||
} | ||
} | ||
c.display("reset").write("\r\n"); | ||
} | ||
c.display("reset").end(); | ||
}); | ||
return es.duplex(ws, c); | ||
}); | ||
return es.duplex(ws, c); | ||
}; |
{ | ||
"name": "picture-tuber", | ||
"description": "render 256 color images on the terminal", | ||
"version": "1.0.2", | ||
"version": "2.0.0", | ||
"repository": { | ||
@@ -6,0 +6,0 @@ "type": "git", |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
42557
3136
48