Resize for X (Twitter) headers (1500×500)

Resize any image to 1500×500 px for X (Twitter) headers. Free, no upload.

The preset makes a 1500 × 500 header (3:1), the dimensions X's Help Center recommends (checked 2026-09-28). X accepts JPG, GIF and PNG but not animated GIFs for headers, and warns that up to 60 px at the top and bottom can be cropped depending on the monitor and browser — so keep text within the middle 1500 × 380. A 3:1 box is much wider than a photo: from a 4032 × 3024 photo only the central 4032 × 1344 band (44 %) is used.

Drop image files hereProcess many files at once
No upload · processed on this device

A 3:1 strip, trimmed again by X

Fill and crop keeps the full width of a landscape photo and cuts 840 px from its top and bottom; from a portrait photo only a quarter of the height remains. Pick the band yourself with crop when the subject is not in the vertical middle.

After upload, X may cut up to 60 px from the top and bottom of the recommended 1500 × 500 image, depending on screen and browser. The area that always shows is therefore about y 60 to 440: 380 px of the 500. X's help page does not describe any other safe zone, so other overlaps are not covered here.

3:1
1500 × 500; three times as wide as tall.
Top/bottom crop
Up to 60 px each, per X's help page.
Static only
Animated GIFs are not supported for profile or header images.

From photo to 1500 × 500 (computed from the code)

Example 12-megapixel sources; cover arithmetic from the resize task, the 60 px margins from X's help page.

Landscape 4032 x 3024 -> crop 4032 x 1344 (840 px off top and bottom), 44 % kept
                         scaled x 0.372 -> 1500 x 500
Portrait  3024 x 4032 -> crop 3024 x 1008 (1512 px off top and bottom), 25 % kept

Always visible: 500 - 2 x 60 = 380 px high (y 60 .. 440)
In the landscape source that is 380 / 0.372 = about 1021 px of height

So only about a third of the landscape photo's height is guaranteed to be seen. Put the subject in the middle of the band before resizing.

Set it as your header on X

  1. Sign in to X.com or open the X app.
  2. Go to your profile and click or tap Edit profile.
  3. Click or tap the camera icon on the header and select Upload photo.
  4. Click Apply — X notes that the image is not saved until you do.
  5. Click or tap Save.

Steps and the 1500 × 500 recommendation as written in X's Help Center on 2026-09-28.

Check the result

  • The result shows 1500×500.
  • Check your profile on a wide monitor and on a phone: text should not touch the top or bottom 60 px.
  • If you uploaded a GIF, make sure it is a still image.

Troubleshooting

SymptomLikely causeHow to checkFix
The top and bottom of the header are cutX crops up to 60 px each depending on the displayMeasure: is the content within y 60–440?Keep text inside the middle 380 px and re-export
Only a thin slice of the photo is left3:1 cover of a 4:3 or portrait photoCompare with the originalChoose the band yourself with crop first
The animated GIF does not moveX does not support animated GIFs for headers—Use a still image
Upload does not finishThe change was not applied or the browser is outdated, per X's help pageThe Apply button was not clickedClick Apply, then Save; try another browser

Other ways to do it

OptionWhen it is the better choice
LinkedIn bannerThe same artwork for LinkedIn, which uses a wider 4:1 strip.
X's header galleryX offers ready-sized header images; its help page suggests them as a template when uploads fail.

What this page does not cover

  • X names only the 60 px top and bottom crop; no other safe zone is documented, so none is claimed here.
  • X's maximum file size for headers is not stated on the pages checked (2 MB is given for profile photos).

Versions and sources

Dimensions, formats, the 60 px crop and the steps come from X's Help Center pages "How to customize your profile" and "Help with uploading a profile photo", read on 2026-09-28. Crop numbers follow src/task/resize.js and fitQuality() in src/image.js.

Official documentation used

Resize for X (Twitter) headers (1500×500)

Preset to 1500×500 px (3:1). Photos with a different ratio are centre-cropped to fill the frame (cover); switch to contain to add margins instead.

Resampling uses the mks2013 filter of Pica. Platforms change their recommendations, so check their current guidance before posting.

Your file is never uploaded — it is processed inside this browser.

Example

Original geometric sample · 96 × 64
Original geometric sample · 96 × 64
Processed sample · 48 × 32
Processed sample · 48 × 32

Example generated with this tool. ZIP tools show their preview; inspect the downloaded archive for every file.

Resize image

Set width and height, with optional aspect-ratio lock.

How it works

  1. Open the source file
  2. Choose the processing mode and settings
  3. Run, inspect the result and download

Supported formats

PNG / JPG / WebP / AVIF / HEIC → PNG — Input decoding and output encoding depend on browser support. Animated inputs are rejected; select a still frame first.

What this tool does

Tiled high-quality mks2013/Lanczos resampling, numeric dimensions and size helpers.

Implementation and verified quality

advanced · Pica tiled mks2013 / Lanczos. Quality qualification is in progress. Pro/Flagship quality has not been established.

Before you export

Actual device memory, storage and codec support. Tested examples are evidence, not a guarantee for every file.

Frequently asked questions

What determines the supported size?

Actual device memory, storage and codec support. Tested examples are evidence, not a guarantee for every file.

Are my files uploaded?

This tool processes the files you open on your device without uploading them. Images you explicitly attach to community posts are uploaded separately. Optional engines and models are downloaded from third parties; those requests expose connection information such as your IP address.

Will my work be saved automatically?

No. Images and editing state stay in this tab; media output can use local temporary storage. Changing language preserves your work; reloading, closing the tab, or following a link to another page can clear it.