The extension is not the encoding
Renaming .gif to .png does not convert it.
This tool reads the signature, decodes the frames, and writes a real PNG/APNG.
Drop a GIF, APNG, PNG, JPG, or WebP. Get an exact 320×320 PNG or APNG under 512 KiB, with a clear Discord-ready check before you download.
Automatic defaults work for most files. Advanced controls are optional.
PNG, APNG, GIF, JPG, or static WebP · up to 10 files · 25 MiB each
Ready for sticker files.
Decode the real fileExtension changes cannot fool the validator.
Seek the targetColors and frames are reduced only as needed.
Check before downloadSeven visible pass/fail conditions.
Discord's support article and current API documentation use slightly different format wording. This tool follows their shared hard limits and chooses conservative output that works across the guidance.
| Check | Discord limit | This tool |
|---|---|---|
| Canvas | 320 × 320 px | Exact |
| File size | 512 KiB maximum | 500 KiB default |
| Static output | PNG | PNG |
| Animated output | APNG in support guidance | APNG / .png |
| Duration | 5 seconds maximum | Capped |
| Frame rate | 60 FPS maximum | 24 FPS default |
The browser detects the real format, reconstructs GIF or APNG frames, limits motion to your duration and FPS choices, and never sends the bytes away.
Contain keeps the whole subject with transparent padding. Trim removes empty edges first. Cover fills the canvas with a center crop.
The worker tries high-quality palettes first. Only if bytes are still too high does it reduce colors or combine frame timing.
Format, dimensions, official maximum, your target, duration, frame rate, and frame data each receive a visible pass or fail.
That message usually hides a concrete file problem. Start with the failed line in this page's readiness checklist.
Renaming .gif to .png does not convert it.
This tool reads the signature, decodes the frames, and writes a real PNG/APNG.
Discord's API documents 512 KiB, or 524,288 bytes. The default 500 KiB target creates a small buffer for interface differences.
Every result is re-encoded on an exact 320-pixel square canvas, with transparent padding unless you choose a crop.
Keep the strongest reaction moment. Five seconds is the maximum; 12–24 FPS often looks better than crushing every frame into 512 KiB.
Open your server settings, choose the sticker or expression
management area, and select the downloaded .png file.
Add a clear name, a related emoji, and a short description for
people using screen readers.
Discord Sticker Compressor is an independent utility and is not affiliated with or endorsed by Discord Inc.
Use an exact 320 × 320 pixel canvas and keep the final file at or below 512 KiB. This page defaults to 500 KiB for a modest safety margin.
Yes. The GIF is decoded frame by frame and re-encoded as APNG in a
normal .png file. Discord's current API docs also list
GIF, but APNG matches the animated format in Discord's creator guidance.
No. Files remain in this tab. Analytics can record a coarse event such as “compression completed,” but never receives a filename, file bytes, image content, dimensions, or frame data.
Start with 24 FPS and a short loop. The tool then tests color palettes from richer to smaller and reduces frames only when palette compression cannot meet your selected target.
Check real encoding, exact dimensions, bytes, duration, and frame data. A renamed extension is not a conversion. Use the readiness list beside each output to identify the failed condition.
Static WebP works. Animated WebP is detected and rejected rather than flattened silently. Convert it to GIF or APNG first, then run that file through the compressor.
Tell us the browser, source format, and visible error—never the private file unless you choose to share it.
— original
Encoding runs in a Web Worker. Keep this tab open.
.png file.