sixel
Version:
Sixel image format for node and browser.
65 lines • 3.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const Decoder_1 = require("./Decoder");
const HI = '#0;2;0;0;0#1;2;100;100;0#2;2;0;100;0#1~~@@vv@@~~@@~~~~@@vv@@~~@@~~~~@@vv@@~~@@~~$#2??}}GG}}??}}????}}GG}}??}}????}}GG}}??}}??-#1!14!14!14@';
//let dec: WasmDecoder;
//const decP = WasmDecoderAsync().then(inst => dec = inst);
function test() {
//const data = fs.readFileSync('testfiles/test2_clean.sixel'); // 541;415
//const data = fs.readFileSync('testfiles/fullhd_12bit_noise_clean.six'); //1920;1080
//const data = fs.readFileSync('testfiles/fhd2_clean.six');
//const data = fs.readFileSync('grrr.sixel'); // 1280;720 541;415
//const data = fs.readFileSync('testfiles/test1_clean.sixel'); // 1280;720
const data = fs.readFileSync('testfiles/quantfrog_hls_clean.six'); // 512;512
//const data = fs.readFileSync('fixture.sixel'); //960;960
//const data = fs.readFileSync('big.sixel'); // 6000;4000
// l1 images
//const data = fs.readFileSync('testfiles/biplane_clean.six');
//const data = fs.readFileSync('testfiles/gnuplot_clean.six');
//const data = fs.readFileSync('testfiles/chess_clean.six');
//const data = fs.readFileSync('testfiles/michael_clean.six'); // L2 with overprinting in xy
const dec = new Decoder_1.Decoder();
const start = Date.now();
for (let i = 0; i < 1000; ++i) {
dec.init(0xFF0000FF, null, 256, false);
dec.decode(data);
//dec.decodeString('$-');
//dec.decode(new Uint8Array([45, 33, 49, 48, 48, 48, 75, 36]))
//dec.decodeString('#0;2;100;100;100!32746K$-'); //$-!32746K');
//dec.decodeString('#0;2;100;100;100' + '!2K$-'.repeat(5400));
//dec.decodeString('$-#0!0K');
//dec.decodeString('$-' + HI);
//dec.decodeString('!1000K$-'.repeat(175)); // OOM test
}
console.warn('duration', Date.now() - start);
//dec.decode(data);
console.log(dec.properties);
const { createCanvas, createImageData } = require('canvas');
const open = require('open');
const imageData = createImageData(dec.width, dec.height);
new Uint32Array(imageData.data.buffer).set(dec.data32);
// draw ImageData to canvas
const canvas = createCanvas(dec.width, dec.height);
const ctx = canvas.getContext('2d');
ctx.putImageData(imageData, 0, 0);
// write to some file and show it
const targetFile = __dirname + '/bla.png';
const out = fs.createWriteStream(targetFile);
const stream = canvas.createPNGStream();
stream.pipe(out);
out.on('finish', () => open(targetFile));
}
test();
//setTimeout(() => test(), 100);
async function test2() {
const data = fs.readFileSync('testfiles/test1_clean.sixel');
const start = Date.now();
for (let i = 0; i < 1000; ++i) {
(0, Decoder_1.decode)(data, { truncate: true });
//await decodeAsync(data);
}
console.warn('duration2', Date.now() - start);
}
//test2();
//# sourceMappingURL=testRuntime.js.map