Downscale: mostly safe
Going from a 4000 px source to 1200 px is visually lossless on screen — there's still more detail in the source than the display can show.
Just resize once. Resizing in multiple small steps compounds tiny rounding errors and softens the image.
The interpolation method matters more than people realise. Lanczos and bicubic produce sharper downscales than bilinear or nearest-neighbor. Most modern image tools default to Lanczos for downscaling, which is the right choice for photos. If your output looks soft, check whether the tool quietly switched to a faster but lower-quality method.
Below a certain ratio, aliasing becomes a problem. Downscaling by more than 4x in a single pass can produce moire patterns on fine textures (fabrics, brick walls, distant foliage). Most encoders add a pre-filter to suppress this, but very aggressive downscales sometimes need a manual blur step beforehand. If you see strange repeating patterns after resizing, that's what happened.
Upscale: be realistic
Doubling 600 px to 1200 px works for moderate use. Quadrupling almost always softens. Beyond 2x, use a model-based upscaler — our Image Enhancer's 2x upscale mode is tuned for photos.
Traditional bicubic upscaling cannot invent detail that isn't in the source. It can only interpolate between existing pixels, which produces a smoothly blurred version of the original at a higher resolution. The pixels are there but the information density isn't.
Neural upscalers (ESRGAN, Real-ESRGAN, SwinIR, and similar models) are trained on pairs of low- and high-resolution images. They learn what high-resolution photos typically look like and hallucinate plausible detail at the higher resolution. The result looks sharper but is fundamentally a guess. For photos this works well. For text, line art, or anything with exact geometry, neural upscalers often invent the wrong shape.
Aspect ratio gotchas
Locking aspect ratio keeps proportions. Unlocking stretches the photo to fit exact dimensions, which usually looks wrong. If you need exact target dimensions without distortion, crop first.
Common forced ratios trip people up. A 1080x1080 Instagram post from a 4032x3024 source needs cropping, not stretching. A 1200x630 Open Graph image from a 1920x1080 source also needs cropping. The cleanest workflow is to crop to the target aspect ratio first, then resize to the target pixel dimensions — that order keeps the resize purely scalar and avoids any distortion.
Cover versus contain. If you're using CSS object-fit, cover crops the image to fill the container and contain shrinks it to fit. For server-side resizing the equivalents are smart-crop (cover) and letterbox (contain). Match the server-side resize to the CSS layout to avoid double-processing the image.
Step-by-step
Using our free resizer:
- Open the Image Resizer.
- Drop a photo.
- Type the width — height auto-fills with aspect ratio locked.
- Click Resize image.
- Click Download.
Practical target sizes
Web hero images: 1600-2000 px on the long edge covers retina screens up to about 13 inches. Going larger wastes bandwidth without visible benefit.
Blog body images: 1200 px wide is enough for any common layout, with 2x retina rendering down to about 600 CSS pixels.
Email signatures and embedded images: 600 px wide is the safe ceiling. Many email clients cap rendered widths anyway.
Social media: Instagram 1080x1080 for square, 1080x1350 for portrait, 1080x1920 for stories. Twitter/X timeline images render best at 1600x900. LinkedIn cover images need 1584x396.
Print: at 300 DPI, a 4x6 print needs 1200x1800, an 8x10 needs 2400x3000, and a 16x20 needs 4800x6000. Below those, the print will look soft to anyone holding it close.
When resizing makes things worse
Screenshots of UI with pixel-perfect text. Resizing to a non-integer ratio (say, 0.83x) blurs every character edge. Either keep the original size or scale to integer ratios (0.5x, 0.25x). For browser screenshots, take them at the final display size from the start.
Icons and logos that came as raster. Resizing a 32x32 favicon up to 256x256 produces a soft mess no matter what algorithm you use. The right fix is to find or recreate the vector version, then export at the target size.
Already-compressed JPGs that have visible artifacts. Resizing won't remove the artifacts; it will just move them around and add a soft layer on top. Re-export from the original source if you can.
Photos that have been through multiple platforms (uploaded to chat, screenshotted, saved again). Each round added some loss. By the time you're resizing the result, you're polishing damage. Track down the original.
Faces that have been through beauty filters with feature reshaping. The reshaped pixels don't line up with the underlying anatomy, so any resize amplifies the unnatural look. The fix isn't a different resize algorithm; it's going back to the unfiltered version.
Performance considerations for the web
Serve images at the size they'll actually display. A 4000 px hero image on a 1200 px container wastes 90% of the downloaded bytes. The HTML srcset and sizes attributes let you ship multiple sizes and let the browser pick the right one based on the actual viewport and pixel density.
Lazy loading via the loading='lazy' attribute defers off-screen images until the user scrolls near them. Combined with appropriate sizes, this can cut initial page weight by 60-80% on image-heavy pages.
For responsive designs, generate three to five sizes per image: roughly 600, 1200, 2000, and 2800 px on the long edge. The browser picks the smallest size that meets the display requirement, so most users on most devices download well under the full-size version.
Frequently asked questions
Why does my resized photo look soft?
Either it was upscaled too aggressively or it was JPEG-compressed before resizing. Resize first, then compress.
What's the maximum upscale?
On our 2x upscaler, exactly 2x. Bigger ratios need heavier models.
Lock aspect ratio always?
Unless you have a specific reason (resizing to a forced platform spec), yes.
Bicubic, Lanczos, or nearest neighbor?
Lanczos for downscaling photos. Bicubic for moderate upscaling. Nearest neighbor only for pixel art or when you specifically want a blocky look.
Does resizing change the DPI?
DPI is metadata, not a property of the pixels. Resizing changes the pixel dimensions; the DPI tag only matters for print. For web display, DPI is ignored entirely.
Will resizing a JPG re-compress it?
Yes. Resizing produces new pixels, and saving them as JPG runs the compression again. Use quality 85+ for the re-save to avoid stacking visible artifacts.