Where a Feed Crops a Full-Bleed Image
ImageStretcher
A file can be the right pixel size and still lose faces: phone covers, profile grids, and TV banners crop again after you upload.
The upload slot and the picture people see are often two rectangles. You can spend an afternoon stretching a photo until every edge of the file is full, export the exact width and height the chart asked for, and still watch the app throw away the left third. That second cut is not a bug in the stretcher. It is the feed protecting a smaller screen, a circle mask, or a button row. Knowing where the cut lands changes where you put the face before you stretch.
This is not a size table. The pixel rows live on the platform pages, and the decision between stretch, resize, and crop is already written up in Stretch vs Resize vs Crop. What follows is the crop that happens after the file is “correct.”
The file is full-bleed, the phone is not
Full-bleed means the bitmap goes to the edge of its own canvas. It does not mean every device shows that entire canvas. A Facebook cover on the Facebook stretch page is 820×360. On a desktop the wide file has room. On a phone the app keeps a center band and cuts the left and right. Faces parked on the far edge, which felt safely inside the 820-pixel width while you were stretching, fall outside the phone’s window. The pixels are still in the file. The phone never asks for them.
The practical order is dull and reliable. Put the subject in the middle of the 820×360 box first. Then stretch the background into the sides that the phone will hide. Stretching the sides back in after you notice the crop does not bring those pixels onto the phone. The phone was never going to show them. You would only be warping a region the viewer does not see, and pulling the center along with it.
YouTube’s channel banner is the same kind of lie at a larger size. The file on the YouTube page is 2560×1440. Televisions and phones show a smaller middle. A word stretched into the outer columns of that banner survives on a wide monitor and disappears on a TV. The thumbnail beside the video title is a different box again, 1280×720, and it does not inherit the banner’s safe middle. People export the banner, scale it down, and wonder why the title sits under the timestamp. The thumbnail has its own edges. Treat it as a second composition, not as a shrunk banner.
Circles delete corners that a square file still contains
Profile photos are square files drawn through a circle. Facebook’s profile and DP rows are 320×320. Discord avatars and server icons on the Discord page are 512×512. Telegram channel photos are 512×512 and shown round. The corners of those squares are in the download and absent on the screen. A wordmark stretched into the corner of the square is gone as soon as the circle mask lands, even though the file preview on your computer still shows it.
This is why a cover and an avatar cannot be one stretched export. The cover wants a wide middle. The avatar wants a tight center that survives a circle. If you stretch the cover down into the avatar square, you do two bad things at once: you squash the wide scene, and you then let the circle throw away what little of the scene remained in the corners. Crop the head, or the logo, into the square, and only then scale. Scaling a crop keeps the shape. Stretching the cover does not.
Instagram adds a second mask that is easy to forget because the feed itself looks honest. A portrait post on the Instagram page is 1080×1350, and the feed can show that tall frame. The profile grid then shows a center square. The top and bottom you carefully stretched into the portrait disappear on the grid, which is the surface people scan. If the only copy of a caption lives in that top band, the grid is a picture without a caption. Put the subject in the center square of the 1080×1350 file, and let the extra height be background.
Buttons cover the bottom of a tall frame
Stories, Reels, Shorts, and TikTok posts are 1080×1920 on their pages here. The file is full screen. The product then paints a username, a caption, and a column of buttons over the lower part of that screen. A face stretched into the lower third is a face behind UI. The pixels uploaded. The viewer looks at an icon instead.
The same 1080×1920 number hides different overlays. A Story and a Reel can share the pixel box and still fail each other’s layout, because the Reel’s controls sit lower and heavier. Snapchat’s geofilter is not even the same box: 1080×2340, taller than the story, with the camera needing the middle to stay clear. Stretching a 1920-tall story down to 2340 to “make a geofilter” pulls pixels into the band where the filter should have been empty.
Leave the lower band of a 1080×1920 still as something that can be covered: sky, floor, a flat color, a continuation of the background. Put the person and the short line of type above it. Then stretch. The stretch should finish before you pretend the buttons are not there.
What to do before you stretch
- Name the surface that will actually display the file: phone cover, TV banner, grid square, circle avatar, or a tall video with buttons.
- Mark the region that surface keeps. For an 820×360 Facebook cover that region is the center. For a 2560×1440 YouTube banner it is a smaller middle than the file. For a 1080×1350 Instagram portrait it is the center square of the grid.
- Move the subject into that region with a crop. Crop Image drops the parts the feed would have dropped, without warping what remains.
- Stretch only the remainder into the upload box, and only if the box’s shape still does not match. A crop that is already 820×360 does not need a stretch.
- Export a second file for the next surface. The cover’s center crop is not the avatar, and the banner is not the thumbnail.
The mistake is treating “the chart said 820×360, and my file is 820×360” as the end of the job. It is the end of the upload check. The feed’s second rectangle is the one the viewer has. Stretch toward that inner rectangle’s contents, and let the outer pixels be the part you can afford to lose.