finds.dev← search

// the find

brendan-duncan/image

★ 1,258 · Dart · MIT · updated May 2026

Dart Image Library for opening, manipulating, and saving various different image file formats.

Pure-Dart image processing library covering the full format matrix — decode/encode JPEG, PNG, GIF, BMP, TIFF, WebP, plus read-only PSD and EXR. It runs on Flutter, CLI, and web without native binaries, which is the main reason to reach for it over wrapping a native codec. The Command API lets you chain operations and offload them to an isolate with one call.

The zero-native-dependency constraint is genuinely hard to achieve and makes it the only realistic choice for cross-platform Dart image work — no FFI setup, no platform-specific build steps. The color model is unusually thorough: int8/16/32, uint1/2/4/8/16/32, float16/32/64 channel types, so you won't lose precision doing HDR work. The Command pattern with `executeThread()` is a clean solution to the Dart isolate boilerplate problem — one line to push a pipeline off the main thread. EXR support with multiple compressors (PIZ, PXR24, B44, ZIP, RLE) is rare in pure-Dart land.

WebP write is lossless only — no lossy WebP output, which is the format people actually want for web delivery. The font system ships three hardcoded Arial bitmap fonts (14/24/48px) with no way to load an arbitrary TTF; text rendering is a dead end for anything beyond debug overlays. AVIF and HEIC are missing entirely, which matters as soon as you're handling modern mobile camera output. All image processing is single-threaded Dart — a large JPEG blur or resize will block longer than the equivalent native call, and the isolate offload helps latency but not throughput.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →