To compress PNG for games, resize each image to the pixels its destination asks for, then compress with a quality setting and check the result. Steam publishes exact capsule sizes, itch.io caps HTML5 zips at 500 MB extracted, and a trailer needs its own video settings. The table maps each job to a Smol setting.
| What you are sending | The limit you hit | The Smol setting |
|---|---|---|
| Steam capsules and screenshots (PNG or JPG) | Exact pixel sizes, such as 920 × 430 for the header capsule; screenshots at least 1920 × 1080 | Compress, same format, maximum dimension set to the long edge, fit mode |
| itch.io page art and HTML5 build images | 500 MB extracted per HTML5 zip, 200 MB for any one file, 1,000 files | Compress PNG at quality 75, or output WebP for web builds |
| Trailer and devlog clips | Upload caps and bandwidth; the file is far larger than any image | Compress video, MP4, H.265 or H.264, check the output size |
| Source PNGs in a repository | Repo and clone size, build cache size | Compress a copy; keep the master elsewhere |
| Texture formats inside the engine (BC7, ASTC) | Chosen by the engine at import, not by an image app | Not Smol. Set it in the engine’s import settings |
What are the Steam store image requirements?
Steam wants five required capsule and screenshot sizes, all published in pixels. Smol scales an image to fit inside a pixel size and compresses it. Fit mode keeps the aspect ratio, so start from art made at the right ratio. Smol does not design the art or check Steam’s content rules, so read the page before you submit.
| Asset | Pixels | Notes | Source |
|---|---|---|---|
| Header capsule | 920 × 430 | Required | Steamworks |
| Small capsule | 462 × 174 | Required. Two smaller sizes are generated | Steamworks |
| Main capsule | 1232 × 706 | Required | Steamworks |
| Vertical capsule | 748 × 896 | Required | Steamworks |
| Screenshots | 1920 × 1080 minimum, 16:9 | At least 5 required | Steamworks |
| Library hero | 3840 × 1240 | No text; keep key content in the central 860 × 380 area | Library assets |
| Library logo | 1280 wide and/or 720 tall | PNG with a transparent background | Library assets |
Steamworks’ store and library asset pages state no file-size limit, so there is no byte target to chase. That changes the job: compress for your own repository, upload time and storage, and keep the pixels exact. Screenshots are the files most worth shrinking, since a 1920 × 1080 PNG of a busy scene can be large and you need at least five.
How do I compress PNG for games without ruining the art?
Compress a copy, set a quality number, then look at the result at 100% zoom. Smol has no lossless mode for images: it always re-encodes, so test one file of each art style before running a folder.
On 24 small film photos saved as PNG, Smol at default settings made the files 69.2% smaller, and compressing the same PNGs to AVIF at quality 65 saved 92.1%. Those images are 768 × 512 photographs, not sprites, so treat the figures as a ceiling for photographic art and not a promise for yours. The method is on the benchmark page.
Which art compresses safely, and which does not?
- Painted backgrounds, key art and photographic screenshots take quality 75 well. Start there and zoom into gradients and skies.
- Hand-placed pixel art is the risk. Smol cannot promise pixel-identical output, so run one sprite sheet, zoom in, and keep the master if edges shift. For pixel-identical results, use a lossless tool such as the one in our ImageOptim comparison.
- UI icons with transparency: check one output on a dark and a light background before batching.
- Images that were already optimized: Smol keeps the original when compressing would make the file larger.
Which Smol settings fit which game asset, and how do I batch them?
Set the maximum dimension to the long edge of the target and keep fit mode. Smol sets quality and pixel size, not output bytes, so check the largest output after each run.
| Asset | Format | Quality or preset | Maximum dimension |
|---|---|---|---|
| Steam screenshot, 1920 × 1080 | Same as original (PNG) or JPG | 75 to start; a starting point, not a measured threshold | 1920 |
| Steam header capsule, 920 × 430 | PNG | 75 to start | 920 |
| Main capsule, 1232 × 706 | PNG | 75 to start | 1232 |
| Vertical capsule, 748 × 896 | PNG | 75 to start | 896 |
| Library hero, 3840 × 1240 | PNG | 80 to start; check the art | 3840 |
| itch.io HTML5 build images | WebP or PNG | 75; test in the running build | Match what the game draws |
| Press kit screenshots | JPG | 80 | 2560 |
| Trailer, 1080p | MP4, H.265 or H.264 | Quality label “High”, then check size | Keep, or reduce the resolution |
Resize can only shrink what you give it. Starting from a 4K screenshot is better than upscaling a small one, and Smol’s upscaler (2×, 3× or 4×) is there for old art you no longer have a larger master of. For many files, compress images for web covers the same batch settings.
Work on a copy of the art folder, drop the whole folder in, and read the per-file sizes afterward. Smol writes a _compressed copy by default and leaves the original alone.
Copy the folder you want to shrink
Keep the masters in your art repo or cloud storage. Never compress the only copy.
Drag the folder into Smol
PNGs, JPGs, a trailer and a PDF press sheet can go in the same batch.
Set format, quality and maximum dimension
Use the settings table above. Set the maximum dimension per asset type; one run produces one size.
Run it and check the largest output
Open the biggest file and one with fine detail at 100%. If both look right, the batch is fine.
Upload the copies
Point Steamworks or your itch.io page at the compressed files, and keep the originals for rebuilds.

What is the itch.io upload limit?
For HTML5 games itch.io states 500 MB total extracted, 200 MB for any one file, and no more than 1,000 files, with paths up to 240 characters. For downloadable builds its FAQ says only that individual file size is limited, and prints no figure.
| Limit | Figure | Source |
|---|---|---|
| Files in an HTML5 zip, after extraction | 1,000 | HTML5 docs |
| Total extracted size | 500 MB | HTML5 docs |
| Any single extracted file | 200 MB | HTML5 docs |
| Longest file path | 240 characters | HTML5 docs |
| Files per page | 10 | Creator FAQ |
Image weight matters most in a browser build, because players download it before they play. Try WebP output for textures a web build loads, and test the running game, not only the file. For a wider look at the web side, see image optimization for web developers.
How do I shrink a game trailer file size?
Export your trailer once at high quality, then compress a copy to MP4 with H.265 or H.264 and check the size. Smol sets quality (CRF) and resolution, not output bytes, so you may need a second run at a lower quality label.
- H.265 is Smol’s default codec, and H.264 is the alternative. The trade-offs are in H.265 vs H.264.
- A 4K capture rarely needs to stay 4K for a store page or a social post. See compressing 4K video.
- For devlog GIFs (more in README media), convert them to MP4 with GIF to MP4.
- Audio can be removed for silent loops, which also cuts size.
Steamworks’ asset pages cover images, not trailers, so check the video upload screen for the current rule. Video workflows in more depth: how to compress a video on Mac. For streamers and clip makers, see gameplay clips.
Can I reduce game build size by compressing textures?
Partly. Build size is set by the texture format your engine writes at import, and an image app does not control that. Smol shrinks the source PNGs and the loose files around the build; the engine handles BC7, ASTC and the rest.
Unity’s platform texture guide lists DXT1 for RGB and BC7 or DXT5 for RGBA on desktop, ASTC for iOS, and on Android ASTC for modern GPUs with ETC2 for older ones. Those are GPU formats, chosen in the engine’s import settings, and Smol does not write them.
Where it does help: smaller source PNGs mean faster imports, a lighter repository and smaller zips of loose assets. Read compressing images before you commit them before you do, because compressed art is committed history. A Finder Quick Action makes it a right-click.
What do game developers use today, and how does Smol compare?
Free and built-in tools come first: your engine, a browser tool and the command line. Smol earns its $29 when you want one app for images, trailers and press PDFs without uploading anything.
| Option | Good at | Limit |
|---|---|---|
| Engine import settings (Unity, Godot, Unreal) | GPU texture formats such as BC7 and ASTC | Does not touch store art or trailers |
| Preview export on a Mac | Quick single-image resize | Manual, one file at a time |
| sips command | Fast scripted resizes | No batch UI; see the sips guide |
| Free web compressors | One-off PNGs | Files are uploaded to a server |
| Smol | Images, video and PDFs in one batch, local | Not an engine tool; no lossless mode |
The scripted option is covered in the sips command, and a side-by-side of tools is in every method compared.
When Smol is the wrong tool
Smol is a Mac app for files you already have. Five cases where something else is the answer:
- You need GPU-compressed textures (BC7, ASTC, ETC2). Those come from your engine’s import step.
- Your CI builds on Linux. Smol is not a build-time tool; use an image library in the pipeline, or the Smol API.
- You need pixel-identical output for pixel art. Smol has no lossless mode.
- You need SVG, texture atlases packed or sprite sheets generated. Smol does not write SVG or build atlases.
- You are on Windows or Linux. Smol is macOS only.
Frequently asked questions
How do I compress PNG for games without losing quality?
Compress a copy, set quality around 75, and inspect the result at 100% zoom. Smol always re-encodes images, so it cannot promise pixel-identical output. Painted art and screenshots usually hold up; hand-placed pixel art needs a test file first, and a lossless tool if edges move.
What are the Steam store image requirements?
Steamworks lists a 920 × 430 header capsule, 462 × 174 small capsule, 1232 × 706 main capsule, 748 × 896 vertical capsule, and screenshots of at least 1920 × 1080 at 16:9, with at least five. Steamworks states no file-size limit on those pages. Check Steamworks for the current rules before you submit.
What is the itch.io upload limit?
For HTML5 games itch.io states a 500 MB total extracted size, 200 MB for any single file and 1,000 files per zip. For downloads its FAQ says individual file size is limited without printing a number, so check your upload screen for the figure that applies to you.
How do I reduce game trailer file size?
Check the upload screen for the current trailer limit, since the Steamworks asset pages cover images only. To shrink one, compress a copy to MP4 with H.265 or H.264, keep or lower the resolution, and check the output size. Smol sets quality, not bytes, so a second pass may be needed.
Can I reduce game build size by compressing textures with Smol?
Only the source files. Build size depends on the GPU texture format your engine writes, such as BC7 or ASTC, and Smol does not create those. It does shrink source PNGs, store art and loose files, which helps repository size, import time and downloads.
Does Smol upload my game art anywhere?
No. Smol runs on your Mac, has no account and no server, and nothing is uploaded, which matters for unannounced art and builds under NDA. It writes a compressed copy beside the original by default.
Keep reading
Smol for other teams
