Skip to content
This repository was archived by the owner on Jul 10, 2026. It is now read-only.
arrow edited this page Jun 6, 2026 · 8 revisions

Worst Image Format Logo

WIMF: Worst IMage Format

This project is just a fancy image format that absolutely seems to have no use... (for now).

Note: This, for now, doesn't have a GUI. You could use the web port (maybe).

How does it work?

How does this thing work? It uses actual math instead of just guessing pixels:

  • Haar Wavelet Engine: Multi-level frequency decomposition. It prioritizes image structure over noise. When you compress it too much, it fails with painterly blurs instead of those disgusting square JPEG blocks.
  • Reversible YCoCg-R: A high-efficiency color transform that provides better decorrelation and color accuracy than standard YCbCr.
  • Variable Bit-Depth: Fully supports 8-bit, 10-bit, and 16-bit precision pipelines. Perfect for HDR10 and professional photography.
  • LZMA Entropy Coding: Deep dictionary-based compression for maximum data density.

Advanced Features

  • Progressive Loading: Chunked Bitstream structure allows for the low-resolution image to improve gradually as the file loads (just like AVIF)
  • Kind of resistant to bitrot: XOR parity blocks can repair the file if your hard drive starts dying.
  • "True" ROI Decoding: Extract specific 512px regions from giant images without decoding the whole file.
  • Chrono-Layers: Store your entire undo history in one file. Scrub through your mistakes. (this feature technically works but not tested in real life scenario)
  • Watermarking: Hide invisible text secrets directly within the wavelet coefficients.

Developer Tools

  • wimf Python Library: API with WIMFDecoder and WIMFEncoder classes for app integration.
  • CLI Converter (wimf-convert): Batch conversion and format migration (supports PNG, JPEG, GIF).
  • Terminal Viewer (wimf-cat): Native 24-bit terminal viewer so you can actually see the image in your CLI.
  • Metadata Editor (wimf-meta): Edit file headers instantly without touching pixel data.

Clone this wiki locally