Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
Q

qoi

> 编程语言
Open source

The “Quite OK Image Format” for fast, lossless image compression

7.5K stars0 likes0 views
WebsiteGitHub

About

The “Quite OK Image Format” for fast, lossless image compression

QOI - The “Quite OK Image Format” for fast, lossless image compression

Single-file MIT licensed library for C/C++

See qoi.h for the documentation and format specification.

More info at https://qoiformat.org

Why?

QOI offers sweet-spot of compression ratio and throughput for lossless image encoding. QOI's compression is roughly comparable to PNG (usually worse than libPNG, but better than stb_image_write.h), while throughput is a lot higher.

Benchmark results on a few thousand images can be found here: https://qoiformat.org/benchmark/

The QOI format is also extremely simple, which helps a lot when porting to other languages.

Example Usage

  • qoiconv.c converts between png <> qoi
  • qoibench.c a simple wrapper to benchmark stbi, libpng and qoi

MIME Type, File Extension

The recommended MIME type for QOI images is image/qoi. While QOI is not yet officially registered with IANA, I believe QOI has found enough adoption to prevent any future image format from choosing the same name, thus making a MIME type collision highly unlikely (see #167).

The recommended file extension for QOI images is .qoi

Limitations

The QOI file format allows for huge images with up to 18 exa-pixels. A streaming en-/decoder can handle these with minimal RAM requirements, assuming there is enough storage space.

This particular implementation of QOI however is limited to images with a maximum size of 400 million pixels. It will safely refuse to en-/decode anything larger than that. This is not a streaming en-/decoder. It loads the whole image file into RAM before doing any work and is not extensively optimized for performance (but it's still very fast).

If this is a limitation for your use case, please look into any of the other implementations listed below.

Improvements, New Versions and Contributing

The QOI format has been finalized. It was a conscious decision to not have a version number in the file header. If you have a working QOI implementation today, you can rest assured that it will be compatible with all QOI files tomorrow.

There are a lot of interesting ideas for a successor of QOI, but none of these will be implemented here. That doesn't mean you shouldn't experiment with QOI, but please be aware that pull requests that change the format will not be accepted.

Likewise, pull requests for performance improvements will probably not be accepted either, as this "reference implementation" tries to be as easy to read as possible.

Tools

  • floooh/qoiview - native QOI viewer
  • pfusik/qoi-fu - QOI Plugin installer for Windows Explorer, Finder, GNOME, GIMP 2, Paint.NET and XnView
  • iOrange/QoiFileTypeNet - QOI Plugin for Paint.NET
  • iOrange/QOIThumbnailProvider - Add thumbnails for QOI images in Windows Explorer
  • Tom94/tev - another native QOI viewer (allows pixel peeping and comparison with other image formats)
  • wkjarosz/hdrview - research-oriented HDR/LDR image viewer with QOI read/write support; runs natively or in-browser
  • qoiconverterx QOI <=> PNG converter available on the Mac App Store
  • kaetemi/qoi-ma - QOI Bitmap I/O Plugin for 3ds Max
  • rtexviewer - texture viewer, supports QOI
  • rtexpacker - texture packer, supports QOI
  • DmitriySalnikov/godot_qoi - QOI GDNative Addon for Godot Engine
  • dan9er/farbfeld-convert-qoi - QOI <=> farbfeld converter
  • LTMX/Unity.QOI - QOI Importer and Exporter for the Unity3D Game Engine
  • Ben1138/unity-qoi - QOI Importer(only) support for the Unity3D Game Engine
  • xiaozhuai/jetbrains-qo - QOI Support for Jetbrains' IDE.
  • serge-ivamov/QOIql - MacOS QuickLook plugin for QOI
  • tobozo/kde-thumbnailer-qoi - QOI Thumbnailer for KDE
  • walksanatora/qoi-thumbnailer-nemo - QOI Thumbnailer for Nemo
  • hzeller/timg - a terminal image viewer with QOI support
  • LuisAlfredo92/Super-QOI-converter - A program to convert JPG, JPEG, BMP, and PNG to QOI
    • Console version: Available for Linux, OSX and Windows
    • GUI version: Available only for windows
  • tacent view - Image and texture viewer, supports QOI
  • colemanrgb/qoi2spr - A variety of applications for decoding and encoding of QOI images on RISC OS
  • Muppetsg2/UnrealQOI - QOI Format Import/Export plugin for Unreal Engine 5
  • microsoft/PowerToys - Adds QOI file preview and thumbnails support to Windows Explorer
  • Mupceet/qoi-viewer - QOI Viewer for Visual Studio Code

Implementations & Bindings of QOI

  • pfusik/qoi-fu - Fusion, transpiling to C, C++, C#, D, Java, JavaScript, Python, Swift and TypeScript
  • kodonnell/qoi - Python
  • JaffaKetchup/dqoi - Dart, with Flutter support
  • Cr4xy/lua-qoi - Lua
  • superzazu/SDL_QOI - C, SDL2 bindings
  • saharNooby/qoi-java - Java
  • MasterQ32/zig-qoi - Zig
  • rbino/qoix - Elixir
  • NUlliiON/QoiSharp - C#
  • aldanor/qoi-rust - Rust
  • zakarumych/rapid-qoi - Rust
  • takeyourhatoff/qoi - Go
  • DosWorld/pasqoi - Pascal
  • elihwyma/Swift-QOI - Swift
  • xfmoulet/qoi - Go
  • erratique.ch/qoic - OCaml
  • arian/go-qoi - Go
  • kchapelier/qoijs - JavaScript
  • KristofferC/QOI.jl - Julia
  • shadowMitia/libqoi - C++
  • MKCG/php-qoi - PHP
  • LightHouseSoftware/qoiformats - D
  • mhoward540/qoi-nim - Nim
  • wx257osn2/qoixx - C++
  • Tiefseetauchner/lr-paint - Processing
  • amstan/qoi-fpga - FPGA: verilog
  • musabkilic/qoi-decoder - Python
  • mathpn/py-qoi - Python
  • Joshix/qoi-rs-python - Python
  • JohannesFriedrich/qoi4R - R
  • shraiwi/mini-qoi - C, streaming decoder
  • 10maurycy10/libqoi/ - Rust
  • 0xd34df00d/hsqoi - Haskell
  • 418Coffee/qoi-v - V
  • Imagine-Programming/QoiImagePlugin - PureBasic
  • Fabien-Chouteau/qoi-spark - Ada/SPARK formally proven
  • mzgreen/qoi-kotlin - Kotlin Multiplatform
  • Aftersol/Simplified-QOI-Codec - C99, encoder and decoder, freestanding
  • AuburnSounds/gamut - D
  • AngusJohnson/TQoiImage - Delphi
  • MarkJeronimus/qoi-java-spi - Java SPI
  • aumouvantsillage/qoi-racket - Racket
  • rubikscraft/qoi-stream - C99, one byte at a time streaming encoder and decoder
  • rubikscraft/qoi-img - NodeJS typescript, bindings to both QOIxx and qoi-stream
  • grego/hare-qoi - Hare
  • MrNocole/ZTQOI - Objective-C
  • bpanthi977/qoi - Common Lisp
  • Floessie/pam2qoi - C++
  • SpeckyYT/spwn-qoi - SPWN
  • n00bmind/qoi - Jai
  • SixLabors/ImageSharp - C# image proccesing library
  • zertovitch/gid - Ada
  • nazrin/lil - Lua image library
  • Hema2-official/qoi-c3 - C3
  • kwon-young/qoi-prolog - Prolog
  • google/wuffs - Wuffs
  • dokutan/qoi-bf - Brainfuck
  • alex-s168/uiua-qoi - Uiua
  • hchargois/qoi - Go
  • coralpink/qoi.cr - Crystal
  • Pivok7/zqoi - Zig
  • Muppetsg2/koi - stb-like single-file, public domain (or MIT-licensed) image processing libraries for C/C++

QOI Support in Other Software

  • Amiga OS QOI datatype - adds support for decoding QOI images to the Amiga operating system.
  • SerenityOS - supports decoding QOI system wide through a custom cpp implementation in LibGfx
  • Raylib - supports decoding and encoding QOI textures through its rtextures module
  • Rebol3 - supports decoding and encoding QOI using a native codec
  • c-ray - supports QOI natively
  • SAIL - image decoding library, supports decoding and encoding QOI images
  • Orx - 2D game engine, supports QOI natively
  • IrfanView - supports decoding and encoding QOI through its Formats plugin
  • ImageMagick - supports decoding

GitHub Issues· 0 open

View all on GitHub

No open issues yet, or sync has not completed.

Highlights

  • •qoiconv.c
  • •qoibench.c
  • •floooh/qoiview - native QOI viewer
  • •pfusik/qoi-fu - QOI Plugin installer for Windows Explorer, Finder, GNOME, GIMP 2, Paint.NET and XnView
  • •iOrange/QoiFileTypeNet - QOI Plugin for Paint.NET
  • •iOrange/QOIThumbnailProvider - Add thumbnails for QOI images in Windows Explorer
  • •Tom94/tev - another native QOI viewer (allows pixel peeping and comparison with other image formats)
  • •wkjarosz/hdrview - research-oriented HDR/LDR image viewer with QOI read/write support; runs natively or in-browser
  • •qoiconverterx QOI <=> PNG converter available on the Mac App Store
  • •kaetemi/qoi-ma - QOI Bitmap I/O Plugin for 3ds Max

> Tags

C

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言