What is the QOI file format?
A .qoi file is a Quite OK Image, a lossless raster image format created by Dominic Szablewski and released on November 24, 2021. It was designed to be far simpler and much faster than .png while producing files of about the same size. The whole specification fits on a single page, and the reference encoder and decoder are around 300 lines of C.
Inside, a .qoi file starts with a 14-byte header that begins with the ASCII marker qoif, followed by the image width and height, a channels byte (3 for RGB or 4 for RGBA), and a colorspace byte. The pixels that follow are compressed with run-length encoding, a small cache of recently seen colors, and delta coding against the previous pixel. The format is fully lossless, supports 8-bit alpha, and was placed in the public domain under CC0.
Security & safety
RISK: LOWQOI is a plain image format with no scripting, macros, or embedded executable content, so a .qoi file cannot run code on its own. It also has no checksum, so a corrupted file may simply fail to decode. As with any image type, the only real risk comes from bugs in a specific decoder, so keep your viewer up to date.
Format details
in a nutshellPrograms that open QOI files
.qoi files natively in GIMP 3.0 or later and export them to other formats. .qoi images after installing the IrfanView plugin pack, then re-save to .png or .jpg. .qoi files from the command line with magick input.qoi output.png (build 7.1.0-20 or later). .qoi file directly to view it, browse folders of them, and batch-convert to other image formats. .qoi thumbnails and previews inside Windows File Explorer. .qoi and .png with the official command-line tool qoiconv input.qoi output.png. .qoi files in Finder with a spacebar QuickLook press after installing the plugin. .qoi files with ffmpeg -i input.qoi output.png (version 5.1 or later). qoiconv input.qoi output.png for lossless PNG conversion. Technical details
deep spec| Encoding | Byte-aligned tagged chunks; no bit-packing across byte boundaries |
| Byte order | Big-endian (width and height stored as 32-bit big-endian integers) |
| Container | 14-byte header, variable-length data chunks, 8-byte end marker (seven 0x00 bytes followed by 0x01) |
| Compression | Lossless. Combines run-length encoding, a 64-entry running hash index of previously seen pixels, and small per-channel delta coding |
| Typical size | Comparable to PNG for the same RGB or RGBA image |
| Structure | Header holds magic 'qoif', width (u32 BE), height (u32 BE), channels (1 byte: 3=RGB, 4=RGBA), and colorspace (1 byte: 0=sRGB with linear alpha, 1=all linear). Pixels are encoded left to right, top to bottom using five chunk types: QOI_OP_RUN, QOI_OP_INDEX, QOI_OP_DIFF, QOI_OP_LUMA, and QOI_OP_RGB / QOI_OP_RGBA. The index uses the hash (r*3 + g*5 + b*7 + a*11) % 64. |
| Integrity | None. There is no CRC or checksum; a fixed 8-byte end marker signals the end of the stream |
| Color depth | 24-bit RGB or 32-bit RGBA, 8 bits per channel |
| Colorspace | sRGB with linear alpha, or all channels linear (informational flag only; does not affect decoding) |
| Platforms | Windows, macOS, Linux |
| Initial Release Full | November 24, 2021 (specification finalized as version 1.0 on January 5, 2022) |
| Reference Implementation | Single-file MIT-licensed C/C++ library qoi.h (about 300 lines). The specification itself is public domain (CC0). |
| Notes | Designed to be far faster to encode and decode than PNG (roughly 20x-50x faster encoding, 3x-4x faster decoding) while keeping file sizes similar. No animation, no tiling, no interlacing, and a maximum of 8 bits per channel. GameMaker uses QOI (with bzip2) as its default texture storage format since 2022.1. |
| Released | 2021-11-24 |
| Latest version | 1.0 (2022-01-05) |
| Open standard | Yes · royalty-free |
| Specification | qoiformat.org |
QOI conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about QOI files.
Frequently asked questions
How do I open a QOI file?
.qoi previews and thumbnails right in File Explorer.How do I convert a QOI file to PNG?
qoiconv input.qoi output.png tool, or use ImageMagick with magick input.qoi output.png. Both are lossless, so the PNG will contain exactly the same pixels.Is QOI better than PNG?
Is QOI lossless?
Does QOI support transparency?
Are QOI files safe to open?
.qoi file holds only image data with no scripts or embedded programs, so opening one in a current viewer carries little risk.