Skip to content
AldeaCode Logo
Image Resizer / X / Twitter Format 100% local

Image resizer for Twitter / X: header 1500x500, in-feed 1200x675

X (formerly Twitter) keeps its image specs simple, but the in-feed crop is where most posts lose impact. Pick the right ratio first, then worry about file size.

The four sizes that matter

Header banner is 1500 by 500, ratio 3:1. The header sits behind the avatar on profile pages and gets cut at the top and bottom on smaller windows, so keep anything important in the middle third.

In-feed images are 1200 by 675, ratio 16:9. This is the safe target for any tweet with a photo, screenshot or chart. The same ratio also works for the og:image preview when your link is quoted.

Profile photo is 400 by 400, square. The avatar gets rounded to a circle in every render, so place faces and logos away from the corners.

Multi-image posts cap at 4 images and use a dynamic grid. Each tile crops to a near-square preview in the feed, so even if you upload 16:9, expect a square tile until someone taps.

File size limits

X allows JPEG and PNG up to 5 MB on the web client and a bit more from the mobile app, with GIFs up to 15 MB. In practice you almost never hit those limits with sensibly sized exports. A 1200 by 675 JPEG at quality 85 lands around 200 KB.

PNG is heavier and worth using only when you have flat color or transparency. Animated GIFs are accepted but X converts most of them to MP4 internally for autoplay, so the smoother option is to upload an MP4 directly when you can.

Alt text outranks dimensions

For engagement on X the alt text on your image is more important than getting the pixel count exactly right. Alt text is what screen readers read, what the platform's accessibility surface picks up, and increasingly what its own ranking touches. A correctly sized image with no alt text underperforms a slightly off-size image with a clear alt description.

Add alt text on every upload. Two short sentences are plenty. Describe what the image shows, not the fact that it is an image.

The in-feed crop trap

When you upload a 16:9 image to a single-image tweet, the feed shows a roughly 2:1 crop until the user taps. That means roughly 30 percent of the vertical canvas is hidden in the preview. Anything important in the bottom third may be invisible to a casual scroller.

Frame the subject in the central horizontal band. Keep titles and faces away from the bottom edge. If you are sharing a chart, crop the source so the key data lives in the middle of the image, not below.

Working example

javascript
// Resize to a clean 1200x675 in-feed image for X / Twitter
async function resizeForX(file) {
  const bitmap = await createImageBitmap(file);
  const W = 1200;
  const H = 675; // 16:9
  const canvas = new OffscreenCanvas(W, H);
  const ctx = canvas.getContext("2d");

  // Contain-fit with white padding, safer than crop for charts
  const scale = Math.min(W / bitmap.width, H / bitmap.height);
  const w = bitmap.width * scale;
  const h = bitmap.height * scale;
  ctx.fillStyle = "#ffffff";
  ctx.fillRect(0, 0, W, H);
  ctx.drawImage(bitmap, (W - w) / 2, (H - h) / 2, w, h);

  return await canvas.convertToBlob({ type: "image/jpeg", quality: 0.88 });
}

Just need the result?

When you need a screenshot or chart at exactly 1200 by 675 for a tweet, or a 1500 by 500 header for your profile, the image resizer in aldeacode.com gets it right in the browser without uploading the file anywhere. Pick the preset, drop the image, download the result.

Open Image Resizer (in your browser) →

Frequently asked questions

Why does my image look fine in the post but cropped in the feed preview?

X shows a tighter aspect ratio in the timeline than in the open tweet view. A 16:9 image gets a roughly 2:1 preview crop. Frame your subject in the central band so the preview still reads, and let the rest reveal on tap.

Should I upload PNG or JPEG?

JPEG for photos and most screenshots, around 200 to 500 KB at 1200x675. PNG only when you have flat color, transparency, or sharp text where JPEG artifacts would be visible. PNG files are larger but X re-encodes both, so the difference disappears for normal photos.

Does X keep image quality higher than Instagram?

Yes, generally. X's re-encode is gentler and a 1200x675 JPEG at quality 85 to 90 looks close to original after the platform pass. You still cannot rely on flawless rendering, but you do not need to over-export the way you would for some other platforms.