ImageScript decodes, edits and encodes images in pure TypeScript: no WebAssembly, no native binaries, no
dependencies. It runs in Node.js 22.13+, Deno, Bun, browsers and edge runtimes (Cloudflare Workers, Vercel's Edge
Runtime, Deno Deploy), with import or require(), and includes type definitions. Encoders use worker threads where
the runtime has them and images are large enough to gain from them.
npm install imagescript # Node.js, Bun and bundlers
deno add jsr:@matmen/imagescript # Denoimport { Image } from 'imagescript';
import { readFile, writeFile } from 'node:fs/promises';
const image = await Image.decode(await readFile('input.jpg'));
image.resize(256, Image.RESIZE_AUTO).roundCorners(16);
await writeFile('output.png', await image.encode());Coordinates are 0-based, (0, 0) is the top left pixel. A bigger example is the
README image generation:
| Format | Decode | Encode |
|---|---|---|
| PNG | ✓ | ✓ |
| JPEG | ✓ | ✓ |
| WebP | ✓ | ✓ (lossless and lossy) |
| AVIF | ✓ | ✓ (lossless and lossy) |
| JPEG XL | ✓ | ✓ (lossless and lossy) |
| GIF, APNG (animations) | ✓ | ✓ |
| BMP, QOI, TGA, Netpbm | ✓ | ✓ |
| TIFF, ICO/CUR, Radiance HDR | ✓ |
Animated WebPs and JPEG XLs decode too, and animations encode as GIF, APNG or WebP, also a frame at a time. Embedded ICC color profiles (Display P3, Adobe RGB, ...) are converted to sRGB when decoding, like browsers show them.
- Text rendering with TrueType and OpenType fonts, in every script, with color emoji
- SVG rendering, text included (with the fonts you pass or the SVG embeds)
- Resizing, cropping, rotating, trimming, rounded corners, ...
- Compositing with opacity and blend modes
- Filters and color adjustments: blur, sharpen, brightness, hueShift, ...
See the documentation for everything else, and the changelog when upgrading from an older major version. bench/ compares ImageScript to Jimp, sharp and others.
ImageScript builds on fflate, libjpeg, pdf.js, font-rs, libwebp, HarfBuzz, dav1d, libavif, libaom, jxl-oxide and libjxl. The TrueType hinting follows FreeType: portions of this software are copyright © 2026 The FreeType Project (www.freetype.org). All rights reserved. See THIRD_PARTY_NOTICES.md for the licenses.
Questions? Join the Discord server.

