I captured a full page on a retina display. The file was 3066 x 28800 pixels.
I pasted it into Claude and asked what it received.
276 x 2600.
Not cropped. Squeezed. Same 1:9.4 shape, 11 times smaller on both axes. About 99% of the pixels never reached the model.
Why it happens
Claude's vision docs recommend 1568px on the long edge, and 2000 to 2500px for dense text. Images over 8000x8000 are rejected outright.
The resize preserves aspect ratio. That is the part that gets people. On a normal screenshot, shrinking the long edge is harmless. On a very tall one, the long edge is the height, so pulling the height down drags the width with it. My page was 9.4 times taller than it was wide, so the width had nowhere to go.
What that does to text
Body text at 14pt on a retina display is about 28 pixels tall in the file.
After an 11x reduction, it is under 3 pixels.
That is not small text. That is no text. The model gets a gray column with colored stripes and is still expected to answer your question, so it does what anyone would do with no information. It guesses, confidently.
This is also why the answer feels vague and you cannot tell why.
It is not only Claude
The dimension limit shows up as real bugs. There are open issues on claude-code where a single oversized image hard-errors the request instead of auto-resizing, and one where an oversized image in a resumed session poisons every following turn with no way back.
Every tool that takes image input has a budget. Tall screenshots lose their text in all of them.
What to send instead
Two things, and neither is clever.
Cut the capture into frames. Each frame small enough to survive the resize. The model reads each one at real size instead of reading one smear.
Send the text separately, as JSON. Every element, its content, its position. JSON has no height limit. A 28,000 pixel page arrives whole, in order, and costs a few hundred tokens instead of a few thousand.
The image is still there when the model needs to see layout. The text is there when it needs to read. You stop asking one tall PNG to do both jobs.
I build SlimSnap, a free Mac screenshot tool that does both: scroll capture splits into readable frames, and one JSON covers the whole page. The schema is MIT.
Go measure yours
Take a long screenshot. Paste it into whatever you use. Ask it what dimensions it received.
I want to build the table. If you have numbers for Figma, ChatGPT or Cursor, post them below.
Top comments (0)