# Image compressor

https://flaghand.com/image-compressor makes photos smaller (JPG, PNG, WebP in; several at once): each is encoded again as
JPG or WebP at the quality picked (80 by default), with its longest side kept or cut to 4096, 2048 or 1080 pixels, or
at the highest quality under 500 KB, 1 MB, 2 MB or 5 MB. A PNG or WebP made into a JPG gets a white background. The new
file keeps no metadata, location included. Each file is checked against what the networks take as a post's photo, the
limits Flaghand checks before approval, checked on November 3, 2026:

- X: 5 MB; JPG, PNG or WebP.
- LinkedIn: 5 MB; JPG or PNG through its API.
- Bluesky: 2 MB (2,000,000 bytes); JPG, PNG or WebP.
- Threads: 8 MB; JPG or PNG.
- Instagram: 8 MB; JPG only through its API.
- TikTok photo posts: 20 MB; JPG or WebP.

Free, no sign-up. It runs in your browser: nothing you type or add is uploaded or stored, and there is no API.

## How to use it

1. Drop or choose photos. Each is compressed at once as a JPG at quality 80.
2. Change the format, quality, longest side or the size to keep under, and they are made again.
3. Download each one.

An agent can preset the choices in the link's hash, which never reaches a server (the photos themselves can't travel in
a link): https://flaghand.com/image-compressor#format=webp&quality=70&long=2048&under=2
Fields: format=jpeg|webp, quality=10-100, long=0|4096|2048|1080, under=0|0.5|1|2|5 (MB).

## Photo limits.

### X and LinkedIn

X **5 MB** JPG, PNG or WebP. An animated GIF can be 15 MB.

LinkedIn **5 MB** JPG or PNG through its API, not WebP.

### Bluesky and Threads

Bluesky **2 MB** JPG, PNG or WebP, 2,000,000 bytes a photo.

Threads **8 MB** JPG or PNG.

### Instagram and TikTok

Instagram **8 MB** JPG only through its API.

TikTok **20 MB** JPG or WebP in a photo post.

Checked on November 3, 2026: the limits Flaghand checks before each post, from [X’s media docs](https://docs.x.com/x-api/media/introduction), [LinkedIn’s Images API](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/images-api), [Bluesky’s image lexicon](https://github.com/bluesky-social/atproto/blob/main/lexicons/app/bsky/embed/images.json), [Threads](https://developers.facebook.com/docs/threads/overview), [Instagram](https://developers.facebook.com/docs/instagram-platform/instagram-graph-api/reference/ig-user/media) and [TikTok](https://developers.tiktok.com/doc/content-posting-api-media-transfer-guide).

## Questions.

### How do I compress an image?

Drop the photo on the page, or choose it. It is made smaller at once as a JPG at quality 80. Change the quality, the longest side or the size to stay under, then choose Download.

### Are my photos uploaded?

No. Each photo is compressed in your browser. Nothing is sent anywhere or stored, and the page sets no cookies.

### How big can a photo be on X, Instagram and Bluesky?

X and LinkedIn take photos up to 5 MB, Bluesky up to 2 MB, Threads and Instagram up to 8 MB, and TikTok photo posts up to 20 MB. Instagram takes only JPG through its API, LinkedIn and Threads JPG or PNG, and TikTok JPG or WebP.

### How do I convert a PNG or WebP to JPG?

Drop it on the page with JPG picked, which is the default, and download the JPG. A transparent background turns white, since JPG has no transparency.

### Does compressing remove a photo’s location?

Yes. The photo is drawn again and encoded as a new file, which keeps none of the original’s metadata: no location, camera or date.

### What quality should I use?

Start at 80, the default: most photos look the same and get much smaller. Go lower only when a file must fit a limit, and look at the result on the page before you download it.

To crop a photo to each network’s shape, use the [image size checker](https://flaghand.com/image-size-checker). Every network’s photo sizes are in the [social media image sizes guide](https://flaghand.com/docs/guides/social-media-image-sizes).

## Flaghand

Flaghand checks each post's photos against its network before its owner approves it.

Flaghand is X and LinkedIn posting for AI agents: your agent drafts through Flaghand's API, CLI or MCP server, you
approve the exact preview with your passkey, and Flaghand posts exactly that.
Sign up at https://app.flaghand.com/start. In a chat app, add the connector at https://app.flaghand.com/mcp: its sign-in page creates the account. An agent with a shell can start the sign-up for its person over HTTP (https://flaghand.com/llms.txt, Quickstart).

For agents: https://flaghand.com/llms.txt (this site) and https://app.flaghand.com/llms.txt (the product's agent guide).
