Merge branch 'master' of https://github.com/Mr-KayJayDee/discord-image-generation
commit
8d3b3333ce
@ -1,35 +1,29 @@
|
|||||||
const Canvas = require(`canvas`);
|
const Canvas = require(`canvas`);
|
||||||
|
|
||||||
const GIFEncoder = require(`gifencoder`);
|
const GIFEncoder = require(`gifencoder`);
|
||||||
|
|
||||||
module.exports = class Blink {
|
module.exports = class Blink {
|
||||||
/**
|
|
||||||
* Blink
|
async getImage( ...images) {
|
||||||
* @param {image} image1
|
console.log(images)
|
||||||
* @param {image} image2
|
if (!images || images.length < 2) throw new Error(`You must provide an image as a first argument.`);
|
||||||
* @param {number} timeout
|
|
||||||
*/
|
const GIF = new GIFEncoder(480, 480)
|
||||||
async getImage(image1, image2, timeout = 1000) {
|
|
||||||
if (!image1) throw new Error(`You must provide an image as a first argument.`);
|
|
||||||
if (!image2) throw new Error(`You must provide an image as a second argument.`);
|
|
||||||
if (isNaN(timeout)) throw new Error(`The timeout argument must be a number.`);
|
|
||||||
const img = await Canvas.loadImage(image1);
|
|
||||||
const base = await Canvas.loadImage(image2);
|
|
||||||
const GIF = new GIFEncoder(480, 480);
|
|
||||||
GIF.start();
|
GIF.start();
|
||||||
GIF.setRepeat(0);
|
GIF.setRepeat(0);
|
||||||
GIF.setDelay(timeout);
|
GIF.setDelay(1000);
|
||||||
GIF.setTransparent();
|
GIF.setTransparent();
|
||||||
|
|
||||||
const canvas = Canvas.createCanvas(480, 480);
|
const canvas = Canvas.createCanvas(480, 480);
|
||||||
const ctx = canvas.getContext(`2d`);
|
|
||||||
ctx.clearRect(0, 0, 480, 480);
|
for (const image of images) {
|
||||||
ctx.drawImage(img, 0, 0, 480, 480);
|
const base = await Canvas.loadImage(image);
|
||||||
GIF.addFrame(ctx);
|
const ctx2 = canvas.getContext(`2d`);
|
||||||
const ctx2 = canvas.getContext(`2d`);
|
ctx2.clearRect(0, 0, 480, 480);
|
||||||
ctx2.clearRect(0, 0, 480, 480);
|
ctx2.drawImage(base, 0, 0, 480, 480);
|
||||||
ctx2.drawImage(base, 0, 0, 480, 480);
|
GIF.addFrame(ctx2);
|
||||||
GIF.addFrame(ctx2);
|
}
|
||||||
|
|
||||||
GIF.finish();
|
GIF.finish();
|
||||||
return GIF.out.getData();
|
return GIF.out.getData();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue