Torn paper effect — rip the edge off any photo
Drop in a picture, set the tear the way you want it, download. The tear is generated in this tab, so the edge style, width and roughness are yours to adjust — and the file you load never leaves your device.
Runs in your browser — your image is never uploaded.1 · Your image
Drop an image here
or click to choose · or paste with Ctrl + V
2 · The tear
What this page does, exactly
You load an image; the browser decodes it into a canvas in this tab. The page then draws two independently generated tear lines around your picture: the outer line is the edge of the paper, the inner line is where the photo itself tears. The band between the two lines is the white paper edge, and the picture sits clipped inside the inner line. The background behind the paper is transparent by default, so the downloaded PNG drops onto any design. When you download, the same canvas is encoded in this tab and handed to your browser's own download. No image data is posted to any server, and there is no upload endpoint for it to go to.
The tear is generated, not a preset stamp
Every tear line is produced the same way: three layers of noise are added along the perimeter, one coarse, one medium, one fine. The wavelengths are set in pixels — roughly 500, 180 and 70 px — so the tear breaks at the scale a hand tear breaks at, whatever the size of your picture. The amplitudes at 100% roughness are 30, 11 and 4 px. These six numbers are constants in this page's script, and they are the reason the three style buttons are three strengths of one generator rather than three different shapes: Torn runs the generator at full amplitude, Deckle at half, Shredded at nine tenths.
Because the lines come from a seed and not from a fixed stamp, each load and each press of Re-tear draws a fresh tear; your settings stay as they are.
The controls, one by one
| Control | What it does | Where it shows |
|---|---|---|
| Tear style | Scales the amplitude of all three noise layers: Torn 100%, Shredded 90%, Deckle 50%. | The jaggedness of both tear lines. |
| Paper edge width | How much white paper shows between the outer tear and the photo tear, from 0 to 120 px. At 0 the paper band nearly vanishes and the photo tear sits right on the paper tear. | The width of the white band. |
| Roughness | Scales the displacement from 0% (a straight cut) to 200% (a violent rip). | How far the lines wander. |
| Background | What sits behind the paper: transparent (default), white or black. JPEG cannot hold transparency, so a JPEG download always lands on white. | The downloaded file's background. |
| Download as | PNG (supports transparency), WEBP (supports transparency) or JPEG. The row above the buttons is measured in this browser when the page loads, not assumed. | The file you get. |
| Re-tear | Draws a fresh tear with a new seed, same settings. | Both tear lines. |
Limits, stated up front
- One image at a time. There is no batch mode on this page.
- No account, and nothing saved. Close the tab and the work is gone; nothing is stored and there is no history to return to.
- The ceilings are measured and enforced, not guessed. This page refuses a source file over 25 MB, a picture over 40,000,000 pixels, or either side over 12,000 px, and the refusal message states the number. The file-size ceiling was measured during the build on this machine's Chrome: files at and under the ceiling load, the next size up is refused.
- The picture is fitted to a working canvas at most 1,600 px on the long side (a constant in this page's script). A larger image is scaled down to it; the download is the working size. Nothing is upscaled: a small picture comes out at its own size.
- A GIF arrives as its first frame only. The canvas here holds one frame, so that is what loads.
- Output is PNG, WEBP or JPEG. A browser encodes only these three, and this page reports what your browser actually supports rather than promising the list.
Numbers on this page, and where each one comes from
| Number | Value | Source |
|---|---|---|
| Noise wavelengths | ≈500 / 180 / 70 px | Constants in this page's script (LAMBDA). |
| Noise amplitudes at 100% roughness | 30 / 11 / 4 px | Constants in this page's script (AMP). |
| Style gains | Torn 1.0 · Shredded 0.9 · Deckle 0.5 | Constants in this page's script (GAIN). |
| Working canvas | ≤1,600 px long side | Constant in this page's script (MAX_WORK). |
| File-size ceiling | 25 MB | Measured during the build: boundary files loaded or were refused, and the page enforces the measured value before decoding. |
| Pixel and side ceilings | 40,000,000 px · 12,000 px a side | Enforced by this page before rendering; the same ceilings measured on this machine's Chrome for this site's other tool pages. |
| Output formats | Measured at load | The page probes your browser's encoder when it loads and prints the result next to the buttons. |
Does adding a torn paper edge send my photo anywhere?
No. The page reads your file with the browser's own file reader and draws it into a canvas in this tab. The torn version is encoded in the same tab. No image data is posted to any server, and there is no upload endpoint for it to go to.
Is the background really transparent?
Yes, in PNG and WEBP: the area outside the paper is left unpainted, so those pixels are transparent in the downloaded file. The checkerboard you see behind the picture in the preview stands for that transparency. JPEG has no transparency channel, so a JPEG download always lands on white.
Will the same settings give me the same tear?
Each load and each press of Re-tear draws a new tear from a fresh seed, so you never have to settle for the first one you see. Turning the sliders re-renders the current tear with your new settings.
Can I tear several images at once?
No. This page tears one image at a time; there is no batch mode.
What image formats can I load?
Anything your browser can decode: JPEG, PNG, WEBP, GIF (first frame), BMP, TIFF, HEIC and AVIF are the usual ones. The list on the drop zone is a candidate list; what your browser actually decodes is what loads.
Is there a file-size limit?
Yes, and it is printed on this page rather than guessed at. The page refuses an oversized file before decoding and the message states the number, so you find out before you start.
Does the download have a watermark?
No. The download is the canvas exactly as rendered, unmarked.