induwara.lk
induwara.lkImage · Utility

Image Upscaler — Enlarge Photos 2×, 3×, or 4× in Your Browser

Make any JPG, PNG, or WebP image two, three, or four times larger without sending it to a server. Bicubic resampling plus an unsharp-mask sharpening pass, running entirely on your device. No signup, no watermark, no upload.

By Induwara AshinsanaUpdated May 11, 2026
Image Upscaler2× · 3× · 4× · in-browser
Files stay on your device

Everything runs in your browser. Nothing is uploaded.

What this does

Loads your image into a canvas and resamples it at 2×, 3×, or 4× the original size using the browser's built-in bicubic filter. An optional sharpening pass adds back the crispness that interpolation softens. The pipeline is classical (not a generative AI model) so it never invents new detail — and never sends your photo anywhere.

Upscale factor
Sharpening
Output format
Source size
Add an image
Output size
Pixel multiplier
Output bytes
Press Upscale to compute
Add an image to start

Drop or pick a JPG, PNG, or WebP file above.

Algorithm: canvas drawImage at imageSmoothingQuality=high (bicubic) + optional 3×3 unsharp mask. No machine-learning model is downloaded. Verified 2026-05-11. See the "Sources & references" section below.

How it works

Most online image upscalers fall into one of two camps. The first camp uploads your file to a server that runs a neural network — usually a Real-ESRGAN or ESRGAN variant — and returns an enlarged image with hallucinated detail. The output is excellent, but the price is privacy, speed, and a paywall above the free tier. The second camp uses the browser to stretch your image at CSS pixel size; the file you download is unchanged. This tool sits in a third spot: classical resampling and sharpening, fully client-side, returning a real larger file with no upload.

The pipeline has two stages. The first stage is a single call to the canvas API:

  1. Decode the input file into an HTMLImageElement via an object URL.
  2. Create a canvas at the target output dimensions (source × scale) and set imageSmoothingQuality = "high". Chromium and WebKit implement this as a bicubic resampler with mip-mapped pre-filtering, which is the standard for high-quality image enlargement.
  3. Call drawImage(img, 0, 0, outW, outH) to resample the source into the larger canvas.

The second stage is the sharpening pass. Bicubic interpolation smooths transitions between pixels, which softens edges — visually, the new pixels are correct but the image looks slightly out of focus. A 3×3 unsharp-mask convolution applied to the resampled pixel data restores some of the perceived crispness. The kernel is a standard Laplacian sharpening matrix:

Normal kernel (sums to 1):

  0  -1   0
 -1   5  -1
  0  -1   0

For each output pixel P(x, y), the new red / green / blue values are
the sum of each kernel cell times the corresponding neighbour pixel.
Alpha is preserved. Edge samples clamp to the nearest in-bounds pixel
(REPLICATE border) so the image edge does not darken.

Three presets are exposed (Soft, Normal, Strong). All three sum to exactly 1.0, so the average luminance of the image is preserved — the sharpening never makes the image globally brighter or darker. The Normal preset is the default. You can also disable sharpening entirely, which is the right choice for an already-sharp source where you only need the larger size.

The whole pipeline runs inside the browser tab. The source file never leaves the device. There is no model download, no licence dialogue, and no rate limit. The trade-off is honest: classical resampling cannot invent detail the way a generative AI model can. For most everyday cases — print prep, doc placement, social-media uploads from a small source — that distinction does not matter.

Worked examples

Old phone photo → 2× for printing

A 1280 × 960 photo from a 2010-era phone, upscaled 2× for a 4 × 3 inch print. The output is 2560 × 1920 — over 4 million pixels and well above the 300 DPI threshold most home printers expect.

Source 1,280 × 960 · Scale 2×

  1. Source: 1,280 × 960 px (1,228,800 pixels)
  2. Scale factor: 2× each side
  3. Output width: 1,280 × 2 = 2,560 px
  4. Output height: 960 × 2 = 1,920 px
  5. Pixel multiplier: 2 × 2 = 4×
  6. Total output pixels: 4,915,200

Tiny avatar → 4× for a profile banner

A 256 × 256 forum avatar enlarged 4× to 1024 × 1024 so it can be cropped into a profile banner without pixelation. The Strong sharpening preset is recommended here because the source is line-art-like.

Source 256 × 256 · Scale 4×

  1. Source: 256 × 256 px (65,536 pixels)
  2. Scale factor: 4× each side
  3. Output width: 256 × 4 = 1,024 px
  4. Output height: 256 × 4 = 1,024 px
  5. Pixel multiplier: 4 × 4 = 16×
  6. Total output pixels: 1,048,576

Phone screenshot → 3× for documentation

A 1080 × 2400 mobile screenshot upscaled 3× to 3240 × 7200 for a documentation PDF. UI elements stay readable; the canvas-bicubic + Soft sharpening combination keeps text edges crisp without halos.

Source 1,080 × 2,400 · Scale 3×

  1. Source: 1,080 × 2,400 px (2,592,000 pixels)
  2. Scale factor: 3× each side
  3. Output width: 1,080 × 3 = 3,240 px
  4. Output height: 2,400 × 3 = 7,200 px
  5. Pixel multiplier: 3 × 3 = 9×
  6. Total output pixels: 23,328,000

Frequently asked questions

Sources & references

Related tools

Rate this tool
Be the first to rate

Comments & feedback

Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Found a bug, edge case, or want to suggest an improvement?

Email me at [email protected] — most fixes ship within 24 hours.