// the find
brendan-duncan/image
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.