pngjs/test/test.js
2015-08-02 11:06:21 +01:00

63 lines
1.6 KiB
JavaScript

var fs = require('fs'),
PNG = require('../lib/png').PNG;
fs.readdir(__dirname + '/in/', function(err, files) {
if (err) throw err;
files.forEach(function(file) {
if (!file.match(/.*\.png$/i))
return;
var expectedError = false;
if (file.match(/^x/)) {
expectedError = true;
}
var data = fs.readFileSync(__dirname + '/in/' + file);
try {
var png = PNG.sync.read(data);
} catch (e) {
if (!expectedError) {
console.log("Unexpected error parsing.." + file);
console.log(e);
console.log(e.stack);
}
return;
}
if (expectedError) {
console.log("Error expected, parsed fine ..", file);
}
var outpng = new PNG();
PNG.adjustGamma(png);
outpng.data = png.data;
outpng.width = png.width;
outpng.height = png.height;
outpng.pack()
.pipe(fs.createWriteStream(__dirname + '/outsync/' + file));
fs.createReadStream(__dirname + '/in/' + file)
.pipe(new PNG())
.on('error', function(err) {
if (!expectedError) {
console.log("Error reading " + file, err);
}
})
.on('parsed', function() {
if (expectedError) {
console.log("Error expected, parsed fine", file);
}
this.adjustGamma();
this.pack()
.pipe(fs.createWriteStream(__dirname + '/out/' + file));
});
});
});