Use gif-encoder-2

This commit is contained in:
Dragon Fire
2024-04-25 00:47:30 -04:00
parent b7eacc98d4
commit 3eed5c373b
8 changed files with 21 additions and 60 deletions
+3 -5
View File
@@ -1,10 +1,9 @@
const Command = require('../../framework/Command');
const { PermissionFlagsBits } = require('discord.js');
const { createCanvas, loadImage } = require('canvas');
const GIFEncoder = require('gifencoder');
const GIFEncoder = require('gif-encoder-2');
const request = require('node-superfetch');
const path = require('path');
const { streamToArray } = require('../../util/Util');
const { centerImagePart } = require('../../util/Canvas');
const frameCount = 10;
@@ -36,7 +35,6 @@ module.exports = class PetCommand extends Command {
const encoder = new GIFEncoder(112, 112);
const canvas = createCanvas(112, 112);
const ctx = canvas.getContext('2d');
const stream = encoder.createReadStream();
encoder.start();
encoder.setRepeat(0);
encoder.setDelay(20);
@@ -55,7 +53,7 @@ module.exports = class PetCommand extends Command {
else squish += 4;
}
encoder.finish();
const buffer = await streamToArray(stream);
return msg.say({ files: [{ attachment: Buffer.concat(buffer), name: 'pet.gif' }] });
const attachment = encoder.out.getData();
return msg.say({ files: [{ attachment, name: 'pet.gif' }] });
}
};
+3 -5
View File
@@ -1,9 +1,8 @@
const Command = require('../../framework/Command');
const { PermissionFlagsBits } = require('discord.js');
const { createCanvas, loadImage } = require('canvas');
const GIFEncoder = require('gifencoder');
const GIFEncoder = require('gif-encoder-2');
const request = require('node-superfetch');
const { streamToArray } = require('../../util/Util');
module.exports = class ShakeCommand extends Command {
constructor(client) {
@@ -42,7 +41,6 @@ module.exports = class ShakeCommand extends Command {
const encoder = new GIFEncoder(512, height);
const canvas = createCanvas(512, height);
const ctx = canvas.getContext('2d');
const stream = encoder.createReadStream();
encoder.start();
encoder.setRepeat(0);
encoder.setDelay(20);
@@ -54,8 +52,8 @@ module.exports = class ShakeCommand extends Command {
encoder.addFrame(ctx);
}
encoder.finish();
const buffer = await streamToArray(stream);
return msg.say({ files: [{ attachment: Buffer.concat(buffer), name: 'shake.gif' }] });
const attachment = encoder.out.getData();
return msg.say({ files: [{ attachment, name: 'shake.gif' }] });
}
generateFrames(amount) {