Slack emoji resizer

Square 128 pixel emoji under 128 KB from any picture or animated GIF, made on this device.

Resizes a picture or an animated GIF into a square 128 × 128 pixel Slack custom emoji and checks it against 128 KB, the size Slack recommends, keeping transparency. It is free, and your artwork is not uploaded: it is resized in your browser. The size limit is your device’s memory (phones hold less), and after one visit and a short wait the page works offline.

Drop pictures or a GIF for emojior click to choose files. Batches welcome.
    Working…

    Done

    Your files are processed on this device and never sent to a server. Reload the page to clear everything from memory.

    Slack’s help page for custom emoji says square images under 128 KB with transparent backgrounds work best, that JPG, PNG and GIF files are accepted, and that a GIF can have up to 50 frames (checked 11 October 2026). Most artwork meets none of that: a logo exported at 1,000 pixels is far heavier, a screenshot has a white box around the face, and a short screen recording is hundreds of frames.

    Drop the picture and this page trims empty transparent margins, fits what is left inside a 128 × 128 square (or crops to it, if you choose Crop to square), and saves a transparent PNG. A 128 × 128 picture cannot hold more than about 66 KB even with no compression at all (128 × 128 × 4 bytes), so a still emoji from this page is always under 128 KB.

    An animated GIF is where the limit bites, and where the frame count matters. The page tries stronger colour reduction first, then keeps every second or third frame and hands each dropped frame’s display time to the one before, so the speed is unchanged. A 120-frame GIF is cut to 40 frames, every third one, to stay inside 50. The result line shows the frame count and flags anything still over 128 KB.

    How it works

    1. Drop a picture or an animated GIF.
    2. Pick Crop to square for photos, or keep Fit inside for artwork with its own shape.
    3. Press Make the emoji, then add it in Slack’s custom emoji settings.

    In your browser, not on a server

    Your browser decodes each drawing (SVG, HEIC, AVIF and JPEG XL included) and, unless you untick it, finds the smallest box holding every visible pixel so the empty transparent margin is cropped away. The art is then scaled down in halving steps with high-quality smoothing, which keeps outlines cleaner than one big jump, fitted or cropped into each square, lightly sharpened at the smallest sizes with an unsharp mask, and saved as PNG by your browser. An animated GIF is decoded frame by frame with gifuct-js (MIT), each frame drawn into the square, and written back with gifenc (MIT), trying stronger colour reduction and fewer frames until it is under the limit.

    Compared with upload-based tools: Emote resizer sites upload commissioned artwork and unreleased sub badges to a server, and many add a watermark to the preview or cap how many you can do. Here the drawings never leave your device and every size is made in one go.

    Verify it yourself. Give the page a short while after one visit to save itself for offline use, then turn off Wi-Fi or switch to airplane mode and run the tool again. Or open your browser's developer tools (F12, or Cmd-Option-I on a Mac), pick the Network tab, and watch it while you convert. The panel above does the same count for you.

    Questions

    What size should a Slack emoji be?

    Slack’s help page asks for square images under 128 KB. This page makes 128 × 128 pixels, which is plenty for the emoji picker and for text size in a message, so a larger upload only adds file size.

    Why does my GIF come out with fewer frames?

    Slack’s help page says a GIF can have up to 50 frames, and a small file limit sometimes needs fewer than that. Dropped frames give their time to the frame before, so the animation lasts as long as the original, just a little less smooth.

    Does the emoji keep a transparent background?

    Yes. A PNG keeps full transparency. A GIF has on-or-off transparency only, so soft anti-aliased edges can show a hard fringe against a dark theme; a solid outline in the drawing hides it.

    Can I upload the same file to Discord or Twitch?

    The size and limit differ. Use the Discord emoji resizer for Discord’s 256 KB limit and the Twitch emote resizer for its three sizes.

    Why is my emoji blurry in Slack?

    Emoji are shown at roughly the height of a line of text, so fine detail and thin lines vanish. A bold shape with a thick outline and few colours reads best; trim the empty margin so the subject fills the square.

    Is my artwork uploaded?

    No. The picture is read from your disk and the emoji is written back to your disk by code running in this tab, so an unreleased logo or an in-joke screenshot stays on your device.

    More image tools

    Other conversions