ImageScript - v3.8.1

ImageScript

Discord Server Documentation Github NPM


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 and browsers, with import or require(), and includes type definitions.

npm install imagescript              # Node.js, Bun and bundlers
deno add jsr:@matmen/imagescript # Deno

import { 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:

Example


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.

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.