fileformer
search⌘KtranslateENexpand_moreupload_fileConvert
Converters8 file families · 44 direct conversions
What changes in a conversionarrow_forward
platform guides / x

Best Image Sizes for Twitter (X)

280 isn't 280 characters.
It's 28,000 weight units.

X counts with the rules in its open-source twitter-text library (config v3). Latin letters weigh 1, Chinese, Japanese and Korean weigh 2, every emoji counts as 2 however many code points it has, and any link costs 23 because it becomes a t.co address. Type below; each chip is one counted unit.

English日本語EmojiLong linkAccentsMixed
JS .length 60code points 46graphemes 32
242 left
HOW X COUNTS IT · 38 of 280
weight 1 · Latin, Greek, Cyrillic, punctuationweight 2 · CJK and other scriptsweight 2 · any emoji sequence23 · link
L1a1u1n1c1h1␣1d1a1y1␣1🚀2👩🏽‍💻2🏳️‍🌈2␣1f1a1m1i1l1y1␣1👨‍👩‍👧‍👦2␣1f1l1a1g1s1␣1🇬🇧2🇯🇵2
JavaScript’s .length says 60, X says 38. 6 emoji count 12; the longest, 👨‍👩‍👧‍👦, is 7 code points but still counts 2.
IMAGE GRID

What the timeline cuts from 1 to 4 photos

Add up to four photos (or use the generated ones). Each layout below is drawn from your pixels with the tile shapes X's timeline uses, centre-cropped. The percentage under each layout is how much of each photo nobody sees until they tap; a single photo keeps its own shape, shown here in a fixed-height frame. Tile shapes are observed in the web timeline, not published by X.

Generated set
1 photoown ratio, 16:9 to 3:4
portrait.jpgall shown
2 photostwo 7:8 tiles
1. portrait.jpg15% cut, top and bottom
2. landscape.jpg34% cut, sides
3 photos7:8 + two 7:4
1. portrait.jpg15% cut, top and bottom
2. landscape.jpg25% cut, top and bottom
3. story.png68% cut, top and bottom
4 photosfour 16:9 tiles
1. portrait.jpg58% cut, top and bottom
2. landscape.jpg25% cut, top and bottom
3. story.png68% cut, top and bottom
4. square.png44% cut, top and bottom
The first photo decides the single-photo shape: portrait.jpg is 3024×4032, which fits the 16:9-3:4 range, so nothing is cut. For grids, put the subject in the centre third: the 4-photo layout cuts a tall photo the hardest.

Upload limits

itemlimitwhat happens to itsource
Post text280 weighted (Premium 25,000)counted with twitter-text v3 weightspublished
Photos per post4 (or 1 GIF, or 1 video)mixed photos and video allowed on newer clientspublished
Photo file5 MB, JPG / PNG / WebPlongest side scaled to 4096; most PNGs re-encoded to JPEGpublished + observed
Animated GIF15 MB on web, 5 MB mobileconverted to a looping MP4 videopublished
Video2 min 20 s, 512 MB (Premium longer)MP4 or MOV, H.264 + AAC; re-encoded to several sizespublished
Alt text1,000 charactersstored separately from the 280published
Profile photo400 × 400 recommendedshown as a circle; square keptpublished
Header image1500 × 500 recommendedcropped differently on mobile; profile photo covers lower leftpublished + observed
MetadataEXIF removed from photoslocation and camera details stripped on uploadobserved
Sources: twitter-text config v3 (github.com/twitter/twitter-text), X Help Center media and counting pages, X API media upload docs. Checked October 2026. "Observed" values come from measuring uploaded media and may change without notice.