packPNG 2.0 LTS
First long-term-support release. Lossless, byte-exact recompressor for the
PNG family — PNG / APNG / JNG / MNG. The default backend undoes the deflate exactly
(preflate) and re-stores the image with WebP-lossless, reconstructing the
byte-identical original file (same SHA-256).
Frozen format
From 2.0 onward the wire format is frozen — every 2.0x point release decodes
any other 2.0x's output. Magics: TCIP (default, preflate + WebP-lossless),
TVCP (-fast, kanzi+zstd), TMCP (-preflate-max, kanzi-TPAQX),
TPCL (-tpcl, preflate + LZMA2), TCIJ (JNG), TCIM (MNG).
Highlights since v1.9
- TPCL (
-tpcl): preflate + multi-threaded LZMA2 — precomp's recipe, but beats
precomp on ratio and batch speed (newer preflate). - MNG Level B: parallel per-segment recompression (large MNGs ~4× faster encode).
- libpackPNG: static library + C API (
packpng.h) —make lib/make lib-win. - Suite-wide never-expands guarantee; clean help screen +
-h/--help.
vs precomp (17 real PNGs, byte-exact both sides)
| ratio | encode | decode | |
|---|---|---|---|
| packPNG TCIP (default) | 45.7 % | 2.4 s | 0.7 s |
packPNG TPCL (-tpcl) |
64.3 % | 1.7 s | 0.6 s |
| precomp 0.4.8 | 75.3 % | 2.2 s | 1.0 s |
packPNG's default is ~39 % smaller than precomp — it models the image
(WebP-lossless) instead of LZMA2-ing the deflate stream. Full tables, backends and
the library API are in the wiki.
Downloads
- Linux x86-64 (static, dependency-free):
packPNG-linux-x86_64-static-v2.0 - Windows x86-64 (mingw, OS DLLs only):
packPNG-windows-x86_64-full-v2.0.exe
4d87c73f6fbef93b14a97cae511cc222d229d72f4b43d2b9403120f666b5be90 packPNG-linux-x86_64-static-v2.0
a486239e76c1d01581739ff1289fe87f93289afca29c740bf60a9cc21cee19b4 packPNG-windows-x86_64-full-v2.0.exe
The Windows
.exeis unsigned; some AVs may flag a generic heuristic (false
positive). Verify the SHA-256 or build from source.### Library (libpackPNG) — SDK archives
Static library + C API for embedding the codec, shipped as per-platform SDK
bundles (library + packpng.h + README with the link line). make lib /
make lib-win reproduce them. Static only for now (a shared .so/.dll needs PIC
rebuilds of the vendored deps). API + example: wiki → Library.
packPNG-2.0-linux-x64-lib.tar.gz— Linux x86-64 (AVX2),libpackpng.a+ headerpackPNG-2.0-win64-lib.zip— Windows x86-64 (mingw-w64),libpackpng-win.a+ header
72d2cf54b810c71238d00d9fbd805a4bbbc8efe0f32ec6f11efdbe4737682a36 packPNG-2.0-linux-x64-lib.tar.gz
55d02cb1f0040d24e09b136ec8d609b2e05a578e26b82e2002fc61e8b1c8c71e packPNG-2.0-win64-lib.zip