< a href = "https://nodei.co/npm/discord-image-generation/" > < img src = "https://nodei.co/npm/discord-image-generation.png?downloads=true&downloadRank=true&stars=true" > < / a >
# discord-image-generation
A powerfull module that allow you to generate awesome images.
# Bugs and glitches
Feel free to report all bugs and glitches by creating an issue in the < a href = "https://git.mrkayjaydee.xyz/Mr-KayJayDee/discord-image-generation/issues" > issue section.< / a >
A correct and understandable issue contains :
- Steps to reproduce
- Code that summonned the error
- The complete error
Please join [this ](https://discord.gg/5ZSGFYtnqw ) community server to follow all my projects or if you need help.
# Links:
### Support Server Community
< a href = "https://discord.gg/5ZSGFYtnqw" > < img src = "https://discord.com/api/guilds/833309512412299276/widget.png" alt = "Coding support server" / > < / a >
### Xinko Discord Bot Support Server
< a href = "https://discord.gg/Uqd2sQP" > < img src = "https://discord.com/api/guilds/527836578912010251/widget.png" alt = "Xinko support server" / > < / a >
# Download
You can download it from < a href = "https://www.npmjs.com/package/discord-image-generation" > npmjs< / a > .
```cli
npm i discord-image-generation
```
# Configuration
The first step is to import the module in your code.
```js
const DIG = require("discord-image-generation");
```
Then you have to request your image and send it as an attachement.
## Discord.js v13
```js
// Import the discord.js library.
const Discord = require("discord.js");
// Create a new discord.js client.
const bot = new Discord.Client();
const DIG = require("discord-image-generation");
// Listen to the ready event
bot.on("ready", () => {
console.log("Bot is online");
});
// Listen to the message event
bot.on("messageCreate", async (message) => {
// Send the image in a simple message
if (message.content === "*delete") {
// Get the avatarUrl of the user
let avatar = message.author.displayAvatarURL({
dynamic: false,
format: 'png'
});
// Make the image
let img = await new DIG.Delete().getImage(avatar);
// Add the image as an attachement
let attach = new Discord.MessageAttachment(img, "delete.png");
message.channel.send({
files: [attach]
});
}
// Send the message with the image attached to an embed
if (message.content === "*blur") {
// Get the avatarUrl of the user
let avatar = message.author.displayAvatarURL({
dynamic: false,
format: 'png'
});
// Make the image
let img = await new DIG.Blur().getImage(avatar);
// Add the image as an attachement
let embed = new Discord.MessageEmbed()
.setTitle("Blur")
.setImage("attachment://delete.png");
let attach = new Discord.MessageAttachment(img, "blur.png");
message.channel.send({
embeds: [embed],
files: [attach]
});
}
});
// Log in to the bot
bot.login("super_secret_token");
```
## Discord.js v14
```js
// Import the required elements from the discord.js library.
const { Client, GatewayIntentBits, AttachmentBuilder, EmbedBuilder } = require("discord.js");
// Create a new discord.js client.
const bot = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
],
});
const DIG = require("discord-image-generation");
// Listen to the ready event
bot.on("ready", () => {
console.log("Bot is online");
});
// Listen to the message event
bot.on("messageCreate", async (message) => {
// Send the image in a simple message
if (message.content === "*delete") {
// Get the avatarUrl of the user
let avatar = message.author.displayAvatarURL({
forceStatic: true,
extension: 'png'
});
// Make the image
let img = await new DIG.Delete().getImage(avatar);
// Add the image as an attachement
let attach = new AttachmentBuilder(img).setName("delete.png");
message.channel.send({
files: [attach]
});
}
// Send the message with the image attached to an embed
if (message.content === "*blur") {
// Get the avatarUrl of the user
let avatar = message.author.displayAvatarURL({
forceStatic: true,
extension: 'png'
});
// Make the image
let img = await new DIG.Blur().getImage(avatar);
// Add the image as an attachement
let embed = new EmbedBuilder()
.setTitle("Blur")
.setImage("attachment://blur.png");
let attach = new AttachmentBuilder(img).setName("blur.png");
message.channel.send({
embeds: [embed],
files: [attach]
});
}
});
// Log in to the bot
bot.login("super_secret_token");
```
# Available images
## Filters
- ``new DIG.Blur().getImage(`< Avatar > `, `<Level(Number)>` );``
![Blur ](https://imgur.com/JqpNFTY.png )
- ``new DIG.Gay().getImage(`< Avatar > `);``
![Gay ](https://imgur.com/BDTrXzZ.png )
- ``new DIG.Greyscale().getImage(`< Avatar > `);``
![Greyscale ](https://imgur.com/h3ahY7Z.png )
- ``new DIG.Invert().getImage(`< Avatar > `);``
![Invert ](https://imgur.com/Rl0wGQM.png )
- ``new DIG.Sepia().getImage(`< Avatar > `);``
![Sepia ](https://imgur.com/OTbKVtj.png )
## Gifs
- ``new DIG.Blink().getImage(delay (in ms), `<Avatar>` , `<Avatar2>` .....);``
> You can add as many images as you want
![Blink ](https://imgur.com/JjUXmRU.gif )
- ``new DIG.Triggered().getImage(`< Avatar > `);``
![Triggered ](https://imgur.com/0QvyYQa.gif )
## Montage
- ``new DIG.Ad().getImage(`< Avatar > `);``
![Ad ](https://imgur.com/H7FvUtZ.png )
- ``new DIG.Affect().getImage(`< Avatar > `);``
![Affect ](https://imgur.com/g4Gaehb.png )
- ``new DIG.Batslap().getImage(`< Avatar > `, `<Avatar2>` );``
![Batslap ](https://imgur.com/oYMpa5A.png )
- ``new DIG.Beautiful().getImage(`< Avatar > `);``
![Beautiful ](https://imgur.com/HGZkmXo.png )
- ``new DIG.Bed().getImage(`< Avatar > `, `<Avatar2>` );``
![Bed ](https://imgur.com/b1idSnr.png )
- ``new DIG.Bobross().getImage(`< Avatar > `);``
![Bobross ](https://imgur.com/lATDohK.png )
- ``new DIG.Clown().getImage(`< Avatar > `);``
![Clown ](https://imgur.com/qXUAAkb.png )
- ``new DIG.ConfusedStonk().getImage(`< Avatar > `);``
![ConfusedStonk ](https://imgur.com/b4UB3BE.png )
- ``new DIG.Deepfry().getImage(`< Avatar > `);``
![Deepfry ](https://imgur.com/q2ADecK.png )
- ``new DIG.Delete().getImage(`< Avatar > `);``
![Delete ](https://imgur.com/6V1IYJp.png )
- ``new DIG.DiscordBlack().getImage(`< Avatar > `)``
![DiscordBlack ](https://imgur.com/dTX3wta.png )
- ``new DIG.DiscordBlue().getImage(`< Avatar > `)``
![DiscordBlue ](https://imgur.com/q1bRGrx.png )
- ``new DIG.DoubleStonk().getImage(`< Avatar `, `<Avatar2>` )``
![DoubleStonk ](https://imgur.com/HbuuUC6.png )
- ``new DIG.Facepalm().getImage(`< Avatar > `);``
![Facepalm ](https://imgur.com/cdPC3P1.png )
- ``new DIG.Hearbreaking().getImage(`< Avatar > `);``
![Hearbreaking ](https://imgur.com/P6USTJ3.png )
- ``new DIG.Hitler().getImage(`< Avatar > `);``
![Hitler ](https://imgur.com/wK9puxH.png )
- ``new DIG.Jail().getImage(`< Avatar > `);``
![Jail ](https://imgur.com/QslACNo.png )
- ``new DIG.Karaba().getImage(`< Avatar > `);``
![Karaba ](https://imgur.com/4aEZs6v.png )
- ``new DIG.Kiss().getImage(`< Avatar > `, `<Avatar2>` );``
![Kiss ](https://imgur.com/sSoCAeH.png )
- ``new DIG.LisaPresentation().getImage(`< Text > `);``
![LisaPresentation ](https://imgur.com/u5cPVVW.png )
> Limited to 300char
- ``new DIG.Mikkelsen().getImage(`< Avatar > `);``
![Mikkelsen ](https://imgur.com/4p71VGS.png )
(Thanks to sι мσ η ℓ εcℓ εяε#5765)
- ``new DIG.Mms().getImage(`< Avatar > `);``
![MMS ](https://imgur.com/nH3URHb.png )
- ``new DIG.NotStonk().getImage(`< Avatar > `);``
![NotStonk ](https://imgur.com/NJ2Svtj.png )
- ``new DIG.Podium().getImage(`< Avatar1 > , < Avatar2 > , < Avatar2 > , < Name1 > , < Name2 > , < Name3 > `);``
![Podium ](https://imgur.com/bQoKf0a.png )
- ``new DIG.Poutine().getImage(`< Avatar > `);``
![Poutine ](https://imgur.com/UpQJHzM.png )
- ``new DIG.Rip().getImage(`< Avatar > `);``
![RIP ](https://imgur.com/qhyZKfz.png )
- ``new DIG.Snyder().getImage(`< Avatar > `);``
![Snyder ](https://imgur.com/0dFnTcP.png )
- ``new DIG.Spank().getImage(`< Avatar > `, `<Avatar2>` );``
![Spank ](https://imgur.com/25gq0es.png )
- ``new DIG.Stonk().getImage(`< Avatar > `);``
![Stonk ](https://imgur.com/oAVgevR.png )
- ``new DIG.Tatoo().getImage(`< Avatar > `)``
![Tatoo ](https://imgur.com/wJju4UJ.png )
- ``new DIG.Thomas().getImage(`< Avatar > `);``
![Thomas ](https://imgur.com/7R37J2j.png )
- ``new DIG.Trash().getImage(`< Avatar > `);``
![Trash ](https://imgur.com/nwAHGgF.png )
- ``new DIG.Wanted().getImage(`< Avatar > `, `<Currency>` );``
> Currency ($, €, ...)
![Wanted ](https://imgur.com/NJfzJeN.png )
## Utils
- ``new DIG.Circle().getImage(`< Avatar > `);``
![Circle ](https://imgur.com/0Zo8NYS.png )
- ``new DIG.Color().getImage(`< Color > `);``
> An hex color is needed, like "#FF0000"
![Color ](https://imgur.com/40tMwfe.png )
- ``new DIG.Denoise().getImage(`< Avatar > `, `<Level>` );``
> Level should be a number
- ``new DIG.Mirror().getImage(`< Avatar > `, `<Level>` );``
![Mirror ](https://imgur.com/oaxbVAC.png )
# Changelog
## v1.4.24
- Re added typings
## v1.4.23
- Fixed import issue
- Added Denoise()
- Added Mirror()
## v1.4.22
- Fixed some bugs
## v1.4.21
- Added discord.js V14 usage example
- Removed discord.js V12 usage example
## v1.4.20
- Some fixes
- Added Clown() (thanks to Retrojection#1937)
- Added Deepfry() (thanks to Retrojection#1937)
- Added Heartbreaking() (thanks to Retrojection#1937)
- Added Mikkelsen() (thanks to Retrojection#1937)
- Added Snyder() (thanks to Retrojection#1937)
## v1.4.7
- Improved Blink() generation, now supports adding an insane amount of images ^^
## v1.4.5
- Added Karaba()
- Fixed some errors returns that were not the same
## v1.4.0
- Added DiscordBlack() and DiscordBlue()
- Added ESLint and fixed all problems
- Use of the function file in LisaPresentation() instead of an in file function
## v1.3.9
- Edited links in README
- Bumped jimp from 0.14.0 to 0.16.1
## v1.3.8
- Edited the Rip() image
- Fixed the Spank() colors
## v1.3.4
- Added bobross()
## v1.3.2
- Added Stonk()
- Added NotStonk()
- Added DoubleStonk()
- Added ConfusedStonk()
## v1.2.12
- Optimized src/index.js (thanks to https://github.com/Pyrojs)
## v1.2.9
- Added Podium()
- Added Ad()
- Added Poutine()
- Fixed Wanted()
- Bumped jimp from ^0.13.0 to ^0.14.0
## v1.1.5
- Added LisaPresentation
## v1.1.2
- Fixed invalid path
- Moved assets folder
## v1.0.0
- Changed the full structure
- Sorted all files in folders
- Sorted all files in the README
- Fixed new Wanted() text bug
- Added new Blink()
- Added a timeout options for new Triggered()
- Fixed the triggered example not animated
- Added some keywords
- Bumped jimp from ^0.12.1 to ^0.13.0
- Added workflow to auto publish to npm and github packages on push
## v0.1.14
- Updated .thomas() example
## v0.1.13
- Added example for .tatoo()
- Fixed the litle hole at the top of the users pic on .thomas()
## v0.1.12
- Saved all examples to imgur
## v0.1.11
- Added .tatoo()
- Updated JSDoc
## v0.1.9
- Added options for the wanted.
- The base image has been updated
- There is now a random price diplayed
- You can now configure a currency
- Added .thomas()
Thanks to Alex15#0010 for the big help ! ❤