An image resizer changes the pixel width and height of a decoded bitmap and writes a new file. This page does that in the browser you already have open. You choose a local JPEG, PNG, or WebP file. The script sniffs the first bytes, decodes the image, and draws it onto a canvas at the size you enter. It then encodes that canvas as JPEG, PNG, or WebP and offers a download. The original file never leaves the machine.
This is not a print-shop RIP and it is not a lossless pixel copy. JPEG and WebP output go through the browser encoder. PNG output is a new PNG from canvas pixels. EXIF, IPTC, and XMP are dropped because canvas has no metadata channel. If you needed only the current width and height, use the Image Dimensions Checker first so you know what you are changing.
SVG, GIF, HEIC, AVIF, and BMP are refused. A .jpg name on an SVG does not make it a JPEG. File type is read from magic bytes. Files larger than 8 MB, wider or taller than 8,000 pixels, or larger than 16 megapixels are refused so a tab does not exhaust memory on a phone.
Empty selection is an error. An unsupported or damaged file is an error. A size that exceeds the megapixel cap is an error. Clear drops the preview, revokes any object URL, and forgets the result. Nothing is written to localStorage, sessionStorage, or cookies. There is no upload request.
If you only needed a smaller file at the same pixel size, use the Image Compressor. If you needed to cut a region before you change size, use the Image Cropper.
A 2400 × 1600 JPEG at 3.1 MB can become 1200 × 800 JPEG at a lower quality. The preview shows the new canvas, not the original bytes. A second resize from the same loaded image uses the original decode, not the last download, so you can try sizes without stacking generation loss on this page. If you download and reload that download, you are starting from the new encoding.
A PNG with transparency resized to JPEG loses alpha. The browser fills transparent pixels with black or the canvas default. If you need the transparent edge, keep PNG. WebP output exists only when the browser can encode WebP. If encode fails, the status says so instead of inventing a file.
Use the new file next to the job that asked for it. Do not treat this page as a batch farm or a color-managed studio. The canvas interpolates when it scales. That is usually fine for web thumbnails and email attachments. It is the wrong tool for a RAW archive or a medical image that must not be re-encoded.
Keep aspect ratio multiplies the other side from the original width and height, not from a previous resize on this page. If you unlock the ratio, you can stretch. Stretching a face or a logo is usually a mistake. The page will not warn you that a 200 × 2000 box looks wrong. It will encode what you asked for.
Object URLs created for a fallback decode are revoked on clear and when a new file is chosen. The download link uses a short-lived object URL and then revokes it. The file input accept list is a hint for the picker. The real gate is the byte sniff. A malicious filename with markup is stripped before it becomes a download name. There is no analytics payload with file contents.
Browser support follows the canvas on that device. An older browser that cannot encode WebP will fail that output. JPEG and PNG are the safer pair when you do not know the client. If createImageBitmap is missing, the page falls back to Image and an object URL. If both fail, you get a decode error. That is better than drawing a broken box and calling it a resize.
JPEG, PNG, and WebP up to 8 MB. SVG and GIF are refused. Resize uses the browser canvas, so JPEG and WebP output is a new encoding, not a lossless pixel copy.
No. The file is read in this browser. There is no fetch or form upload.
No. The page draws pixels on a canvas and encodes them again. JPEG and WebP are lossy. PNG is a new PNG from those pixels.
SVG can carry script. This cluster does not accept SVG.
Up to 8 MB, 8,000 pixels on an edge, and 16 megapixels.