GCanvas/node/examples/image-cached.js

67 lines
1.9 KiB
JavaScript

const fs = require('fs')
const path = require('path')
const out1 = fs.createWriteStream(path.join(__dirname, "..")+ '/imageCanvas1.png');
const out2 = fs.createWriteStream(path.join(__dirname, "..")+ '/imageCanvas2.png');
const { createCanvas, Image } = require('../export');
function localFunctionCreateCanvas() {
let canvas = createCanvas(400, 400);
let canvas2 = createCanvas(400, 400);
let canvas3 = createCanvas(400, 400);
let canvas4 = createCanvas(400, 400);
}
localFunctionCreateCanvas();
try {
if (global.gc) {
console.log(`called gc force`);
global.gc();
} else {
console.log("not called gc ");
}
} catch (e) {
console.log("`node --expose-gc index.js`");
process.exit();
}
setTimeout(() => {
const canvas = createCanvas(400, 400);
const ctx = canvas.getContext('2d');
const img = new Image()
img.onload = () => {
console.log("image1 onload success!");
ctx.fillStyle = "#000000";
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
ctx.drawImage(img, 0, 0, 100, 100);
canvas.createPNGStream().pipe(out1);
nextCanvasDrawImage();
}
img.onerror = err => {
console.log(err)
}
img.src = "https://img.alicdn.com/imgextra/i3/80/O1CN011CSgGWymNlCrNO3_!!80-2-luban.png"
function nextCanvasDrawImage() {
const canvas2 = createCanvas(400, 400);
const ctx2 = canvas2.getContext('2d');
let img2 = new Image();
img2.onerror = err => {
console.log(err)
}
img2.onload = () => {
console.log("image2 onload success!");
ctx2.fillStyle = "#000000";
ctx2.fillRect(0, 0, ctx2.canvas.width, ctx2.canvas.height);
ctx2.drawImage(img, 0, 0, 100, 100);
canvas2.createPNGStream().pipe(out2);
}
img2.src = "https://img.alicdn.com/imgextra/i3/80/O1CN011CSgGWymNlCrNO3_!!80-2-luban.png"
}
}, 100);