skwish
private
browser-based
Compress images for the Gemini API — the widest format support and the token budget you set with pixels
Gemini is the most forgiving of the three on format and the least forgiving on volume. It accepts PNG, JPEG, WEBP, HEIC and HEIF, and one request can carry up to 3,600 image files. That ceiling is generous enough that a real batch job hits it, which means per-file size is the only thing standing between you and a payload you have to chunk by hand. Resolution is where the cost lives. Gemini counts image tokens by tiling: the crop unit is roughly floor(min(width, height) / 1.5), and each dimension is divided by that crop unit and multiplied, so a 960x540 image has a 360 px crop unit and costs 3 by 2, six tiles. Push the pixels up and the tile count climbs with them. The media_resolution parameter then sets the maximum number of tokens allocated per image, which means the pixels you send are a real budget decision rather than a formatting detail. Google's own guidance also asks for correctly rotated, clear, non-blurry input, because upscaling a blurry original adds tiles without adding information. Skwish resizes to an exact dimension, converts between JPG, PNG and WebP, and compresses in the browser with a batch queue and one ZIP.
Search match

This page is tuned for compress image for gemini api so visitors land in the right workflow immediately.

Fast output

See original size, compressed size, and percentage saved before you move on.

Batch ready

Compress multiple files and pull the results down as a ZIP.

Get to the compressor fast
Exact-intent SEO page first. Clear next step. Pretty later.

People usually search for a specific task, not a brand story. So this page keeps the promise simple: compress images without sending them to a third-party server.

Built for people searching “compress image for gemini api”, not a generic landing page.

No uploads, no accounts, no waiting on a server.

See the savings before you download anything.

Batch export stays available when the job is bigger.

Best for this search

Resize a large photo set to a fixed long edge so tile counts, and therefore token cost, stay consistent across a run.
Convert heavy PNG screenshots to JPG to keep a 3,600-file request inside a workable payload.
Downscale camera originals before sending, since extra pixels only raise the tile count without improving legibility.
Produce one consistent size across a mixed folder of screenshots, photos and exports before batch uploading.
Compress images now

Opens the upload box on the free browser compressor.

Drop images in the browser
Keep the whole workflow local. Nothing leaves your device unless you download it.
Set the output you need
Adjust compression until the file size and quality fit the job instead of guessing.
Download a clean result
Save one file or a ZIP bundle with skwish-prefixed names so the output is easy to find.
Sizing for Gemini image input
Use these before you upload or share the page.
Tile count follows the image dimensions, so a fixed long edge keeps cost predictable across a batch.
media_resolution sets the token ceiling per image. Send the pixels you want analysed and let the parameter cap the spend.
HEIC and HEIF are accepted by the API but most browsers cannot decode them, so convert to JPG or PNG before a browser-based batch.
Fix rotation before compressing. A sideways scan reads worse after recompression, not better.

Ready to compress images?

Open the free browser upload box, keep files local, and download the optimized result.

Compress images now