{ } tools.dcln.me

tools / image

Image tools.

Convert between formats, resize, compress, strip EXIF, build favicons, rasterize SVG, or render as ASCII / braille art — all in your browser. Files never leave your device.

Convert images between JPG, PNG, WebP, AVIF, GIF, BMP, TIFF and HEIC.

Drop images here

or

Stays on your device. Nothing is uploaded.

JPG · PNG · WebP · AVIF · GIF · BMP · TIFF · HEIC

How it works

  1. 01 Pick a mode. The tab bar lists seven operations: convert, resize, compress, favicon bundle, EXIF strip, SVG to raster, ASCII art.
  2. 02 Add your image(s). Drag and drop, or pick. Native browser APIs decode most formats; HEIC and TIFF use lazy-loaded WebAssembly.
  3. 03 Configure & download. Adjust the options (output format, quality, dimensions), then run. Multi-file outputs come as a ZIP.

FAQ

Are my images really private? Do they get uploaded?
No. Every operation runs in your browser. Decoding uses native browser APIs where possible, and WebAssembly (libheif-js, @jsquash/avif) for formats your browser doesn't decode natively. There is no upload — verify it yourself in your browser's network tab.
Which formats are supported?
Input: JPG, PNG, WebP, AVIF, GIF, BMP, TIFF, HEIC. Output: JPG, PNG, WebP, AVIF. HEIC is decoded via libheif-js (WebAssembly), TIFF via utif2, and AVIF encoding via @jsquash/avif — all lazy-loaded only when needed for the file you drop.
Why does compressing a PNG produce a WebP?
PNG is lossless — there's no 'quality slider' that meaningfully shrinks a PNG without changing pixels. To get real file-size savings while preserving transparency and a similar pixel pipeline, we re-encode as WebP. JPG, WebP, and AVIF inputs stay in their own format.
Does stripping EXIF re-compress the image?
No. EXIF stripping uses piexifjs to remove the metadata segment from JPG bytes directly — the actual image pixels are untouched, so there's no quality loss. Only JPGs are supported in this mode; for other formats, convert to JPG first or use the Convert tool, which always re-encodes.
Why doesn't HEIC encoding work?
Encoding HEIC requires patent-encumbered codecs that aren't available in browser-friendly WASM ports. Decoding works fine, so you can drop an iPhone HEIC and convert it to JPG, PNG, WebP, or AVIF — just not the other way around.
Does it work offline?
Yes, after the page has loaded once and you've used each mode at least once (which fetches its WASM bundle). After that, the toolkit keeps working without an internet connection.
What's the difference between ASCII art and braille mode?
ASCII gradient/dense/blocks render one character per source pixel (after rescaling), mapping luminance to a character ramp. Braille mode is higher-resolution: each character cell encodes 8 sub-pixels (2 wide × 4 tall) via Unicode braille patterns (U+2800–U+28FF), so a 100-character-wide braille rendering carries the detail of a 200×400 pixel image while still being a copy-pasteable text block.
Why does ASCII art look stretched in some places?
Monospace characters are roughly twice as tall as they are wide, so we sample half the vertical pixel density to compensate. If your terminal or chosen monospace font has a different cell aspect ratio, the rendering may look slightly stretched there — try the PNG export instead, which renders at the same font we used for sampling.