> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.petto.sbs/llms.txt
> Use this file to discover all available pages before exploring further.

# Quotes and Images

> Make a quote picture from any message, apply effects like blur or deep fry to images and avatars, and find the main color of a picture.

## Overview

Three picture commands, all in the **Fun** category:

* `!quote` turns a message into a black and white quote picture.
* `!image <effect>` applies an effect (invert, blur, rotate, deep fry...) to an image, an avatar or a link. Each effect also has its own shortcut, like `!blur` or `!invert`.
* `!color` (also `!hex`) finds the main color of an image or an avatar.

They are prefix commands with a **cooldown** per member: 5 seconds for `!quote` and `!image`, 4 seconds for `!color`. Both you and Petto need the **Attach Files** permission in the channel; if one of you is missing it, Petto says which. When many pictures are being made at the same time across Petto, you may be asked to try again in a few seconds.

## Quote

```javascript Syntax theme={null}
!quote
!quote <message link or ID>
!quote <text> [member]
!quote ... [--color] [--light] [--bold]
```

```javascript Example theme={null}
!quote
!quote https://discord.com/channels/123/456/789
!quote 1234567890123456789 --light
!quote never trust a cat @Someone
!quote @Someone never trust a cat --color --bold
```

`!quote` also works as `!q` and `!miq` ("make it a quote").

What gets quoted, in this order:

1. **The message you reply to.** Reply to a message and type `!quote`.
2. **A message link** from this server. You and Petto must be able to read that channel; messages from other servers are refused.
3. **A message ID** from the channel you are in.
4. **Text you write.** Add a member at the start or at the end (`!quote hello @member` or `!quote @member hello`) to put the quote in their name; without one, the quote is yours.

The picture is 1200×630. The author's avatar is on the left, in black and white, fading into the background, and the words are on the right in a large serif font, as big as they fit. Under the words come the author's **display name** in the server and their **@username**, smaller and dimmer. A text too long for the picture ends in "…".

Mentions are written as `@name`, `#channel` and `@role`, links are shortened to their site, Markdown marks are removed, and custom and normal emojis are drawn as images (an emoji that cannot be loaded within a few seconds is written as text).

| Option | What it does |
| - | - |
| `--color` | Keeps the avatar in color (`--colour` works too). |
| `--light` | White background with dark text (`--white` works too). |
| `--bold` | Writes the words in a heavier font. |

Options can go anywhere in the text and can be combined: `!quote --light --bold`.

![shi replies to a message of chu with !quote and Petto answers with a black and white quote picture of chu's words, avatar and name](https://mintcdn.com/wikipetto/ym43wKcqHRA_RnWi/images/discord/miscellaneous/quote.webp?fit=max\&auto=format\&n=ym43wKcqHRA_RnWi\&q=85\&s=1d342fe04abf89f4cdee8558206ad1fc)

In Discord: !quote as a reply to a message.

> [accordion] !quote \<text> @member
>
> ![shi writes a sentence and @chu after !quote, and Petto draws the quote with chu's avatar and name](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-quote-text.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=64dc87d229353deed20fdc89721f76ca)
>
> In Discord: text with a member at the end: the quote is in their name.

> [accordion] !quote \<message link>
>
> ![Chillet quotes a message of kira by its link and Petto draws kira's words in black and white](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-quote-link.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=34aaae31c6611b4bc45fe56d23501257)
>
> In Discord: a link to a message of another channel of the server.

> [accordion] !quote \<message ID>
>
> ![kira quotes a message of chu by its ID with --light and Petto draws it on a white background](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-quote-id.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=8b7304d35132f295435bac6efc4abceb)
>
> In Discord: the ID of a message of this channel, here with --light.

> [accordion] --light
>
> ![kira quotes her own text with --light and the picture has a white background](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-quote-light.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=0a4dfdb682f2a812afb20488431b2a45)
>
> In Discord: --light: white background and dark text.

> [accordion] --color --bold
>
> ![liam quotes @shi with --color --bold: shi's avatar in color and the words in bold](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-quote-color-bold.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=bbcddedf3dfc58b431324cddf5127586)
>
> In Discord: --color keeps the avatar in color and --bold uses a heavier font.

> [accordion] Nothing to quote
>
> ![nova types !quote alone and Petto explains the ways to use it and its options](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-quote-usage.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=959ea54c61ec363f12a58a44726b1b6c)
>
> In Discord: !quote alone, not as a reply, says how to use it.

## Image effects

```javascript Syntax theme={null}
!image <effect> [amount] [picture]
```

```javascript Example theme={null}
!image invert
!image blur 20 @Someone
!image rotate 45 https://example.com/cat.png
!img pixelate 30
```

`!image` also works as `!img`.

| Effect | Shortcuts | Amount | What it does |
| - | - | - | - |
| `invert` | `!invert` | | Inverts the colors. |
| `grayscale` | `!grayscale`, `!greyscale`, `!bw` | | Black and white. |
| `sepia` | `!sepia` | | An old photo look. |
| `blur` | `!blur` | 1 to 50, default 8 | Blurs the picture. |
| `pixelate` | `!pixelate` | 2 to 100, default 12 | Big square pixels; the amount is their size. |
| `rotate` | `!rotate` | -360 to 360 degrees, default 90 | Turns the picture. It grows to hold the turned picture, with see-through corners. |
| `flip` | `!flip` | | Upside down. |
| `mirror` | `!mirror` | | Left to right. |
| `circle` | `!circle` | | Crops it into a circle. |
| `deepfry` | `!deepfry` | | Deep fried. |
| `compress` | `!compress` | JPEG quality 1 to 100, default 5 | Saves it as a low quality JPEG. |
| `hex` | `!dominant`, `!dominantcolor` | | Finds the main color (see [Main color](#main-color-of-a-picture)). |

A shortcut takes the same amount and picture as the long form: `!blur 20 @Someone` is `!image blur 20 @Someone`. A short number first is the amount; a long number is read as a member ID, so `!rotate 123456789012345678` turns that member's avatar.

> [accordion] !image invert
>
> ![liam runs !image invert and Petto answers with liam's avatar with inverted colors](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-invert.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=01246ea4ad9e61b9298888f59454a170)
>
> In Discord: the colors of your own avatar, inverted.

> [accordion] !grayscale @member
>
> ![kira runs !grayscale @chu and Petto answers with chu's avatar in black and white](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-grayscale.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=7fd7b36b968c57f4f67657903040551b)
>
> In Discord: a member's avatar in black and white.

> [accordion] !sepia @member
>
> ![chu runs !sepia @kira and Petto answers with kira's avatar in sepia](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-sepia.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=8e27806fa49273b3306ccafb7e50f627)
>
> In Discord: an old photo look.

> [accordion] !image blur 20 @member
>
> ![shi runs !image blur 20 on herself and Petto answers with the avatar blurred](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-blur.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=2ce9814e35dd409f38828a3793f15534)
>
> In Discord: blur with an amount of 20.

> [accordion] !img pixelate 30
>
> ![liam runs !img pixelate 30 and Petto answers with liam's avatar in big squares](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-pixelate.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=2ee05e40c3de2c1edfb4ea298acbdb9d)
>
> In Discord: pixels of 30.

> [accordion] !rotate 45 @member
>
> ![kira runs !rotate 45 @chu and Petto answers with chu's avatar turned 45 degrees](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-rotate.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=06420a557eff4edc132987e2b33a95ab)
>
> In Discord: turned 45 degrees, with see-through corners.

> [accordion] !flip @member
>
> ![chu runs !flip @shi and Petto answers with shi's avatar upside down](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-flip.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=6a70744ebfcfddd61cb2b87d8959ac90)
>
> In Discord: upside down.

> [accordion] !mirror @member
>
> ![shi runs !mirror @kira and Petto answers with kira's avatar mirrored](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-mirror.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=0d9534f6323c67f5c7cf5cbc463da81c)
>
> In Discord: left to right.

> [accordion] !circle @member
>
> ![liam runs !circle @Chillet and Petto answers with Chillet's avatar in a circle](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-circle.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=a259043567fa106a8e13945ead10581a)
>
> In Discord: cropped into a circle.

> [accordion] !deepfry @member
>
> ![kira runs !deepfry @chu and Petto answers with chu's avatar deep fried](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-deepfry.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=1e4186cfff645765b3167091216229fd)
>
> In Discord: deep fried, as a JPEG.

> [accordion] !compress 3 @member
>
> ![chu runs !compress 3 @shi and Petto answers with a low quality JPEG of shi's avatar](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-compress.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=fc6106c0c88dfda5fffebba13c811ef3)
>
> In Discord: a JPEG of quality 3.

### Which picture is used

Petto takes the first one it finds:

1. A picture **attached** to your command.
2. A picture, embed image or sticker of the **message you reply to**.
3. An **`https://` link** you type after the command.
4. A **member** you name (mention, ID or name): their avatar, the server avatar when they have one.
5. The avatar of the **author of the message you reply to**.
6. **Your own avatar**.

### Limits

* PNG, JPEG, WebP and GIF pictures. A GIF uses its first frame, and the answer says so.
* At most **8 MB**, **8192 pixels** on each side and **16 megapixels**. Bigger pictures are refused before they are opened.
* Links must be `https://`. Petto only downloads from public addresses, gives up after a few seconds and only accepts image files.
* The answer is a PNG, except `compress` and `deepfry`, which are JPEG.

![shi inverts a GIF from a link and Petto answers with the picture and a note that only the first frame was used](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-effect-gif.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=2fbf71e5f098b1ac50b65f3bb0f6bcfd)

In Discord: a GIF uses its first frame, and the answer says so.

## Main color of a picture

```javascript Syntax theme={null}
!color <hex>
!color [picture]
```

```javascript Example theme={null}
!color #8399ff
!hex
!hex @Someone
!hex https://example.com/banner.png
```

`!color` also works as `!hex` and `!clr`. With a hex code (like `#ff91c2` or `ff91c2`) it shows that color with its RGB, HSL and decimal values, as before. With anything else it finds the **main color of a picture**: an attached or replied image, a link, a member's avatar or, with nothing after it, your own avatar. The picture is chosen in the same order as for [image effects](#which-picture-is-used), and Petto answers with the hex code and the RGB values, and a picture of the image on a background of its main color with the code written on it. `!image hex`, `!dominant` and `!dominantcolor` do the same.

![chu runs !color #8399ff and Petto answers with a card in that color and its hex, RGB, HSL and decimal values](https://mintcdn.com/wikipetto/wbZ4Vn297CbbdRfX/images/discord/miscellaneous/images-color-hex.webp?fit=max\&auto=format\&n=wbZ4Vn297CbbdRfX\&q=85\&s=2e939438d0eebb2394dfa6b7a0f001a5)

In Discord: !color with a hex code: the color with its RGB, HSL and decimal values.

![kira runs !hex on chu and Petto answers with the hex code, the RGB values and the avatar on a background of its main color](https://mintcdn.com/wikipetto/ym43wKcqHRA_RnWi/images/discord/miscellaneous/hex.webp?fit=max\&auto=format\&n=ym43wKcqHRA_RnWi\&q=85\&s=1bacdcc6eb9f98d33ba12f2893cf892c)

In Discord: the main color of a member's avatar.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.