QOI vs PNG
PNG preserves decoded pixels losslessly and can carry alpha. It is useful for transparent graphics and screenshots; it does not preserve editable document layers or camera sensor data, and photographic files can be large.
Image format
A small lossless codec for 8-bit RGB and RGBA images, designed for simple, fast implementations.
Explore the format
Choose a target format for your QOI images.
Marked paths may need steps such as flattening, rasterization, tone mapping or animation loss.
Choose a source format to convert to QOI.
Marked paths may need steps such as flattening, rasterization, tone mapping or animation loss.
Quite OK Image Format
Dominic Szablewski designed QOI as a deliberately small lossless raster format. It stores 8-bit RGB or RGBA pixels using a short header, a sequence of compact coding operations and an end marker. The specification prioritises implementation simplicity rather than a container full of optional media features.
The stream uses repeated pixels, small differences and a recent-pixel index to encode image data without changing its values. A colour-space flag distinguishes the specified sample interpretation, but there is no ICC-profile or Exif chunk system. Alpha is an ordinary fourth 8-bit channel when RGBA is selected; higher-bit-depth samples are not represented.
Use QOI for application-controlled image assets and intermediate storage when both ends implement it. It is not an animated format or a substitute for a layered master. Converting high-precision or metadata-rich sources to QOI needs deliberate reduction, even though the QOI coding step is lossless for its supported pixels.
QOI preserves 8-bit RGB/RGBA samples losslessly. Reducing 16-bit data or discarding profiles and metadata before encoding is outside that guarantee.
QOI has a short, documented history centred on its creator’s 2021 proposal and the final compact specification.
Different formats, different trade-offs. Choose for the image and the workflow.
PNG preserves decoded pixels losslessly and can carry alpha. It is useful for transparent graphics and screenshots; it does not preserve editable document layers or camera sensor data, and photographic files can be large.
BMP suits Windows bitmap interchange and simple pixel inspection. Uncompressed variants are easy to decode but can be large; palette, alpha and colour-profile behaviour depend on the header version.
TGA offers straightforward raster storage, optional RLE and alpha for compatible asset pipelines. Its simplicity is useful for textures, while PNG offers a more explicitly standardised web and colour-metadata workflow.
WebP combines lossy or lossless 8-bit image coding with alpha and animation. It is a web delivery option when those features matter; high-precision samples and editable source structures need another working format.
Dominic Szablewski designed QOI as a deliberately small lossless raster format. It stores 8-bit RGB or RGBA pixels using a short header, a sequence of compact coding operations and an end marker. The specification prioritises implementation simplicity rather than a container full of optional media features.
QOI preserves 8-bit RGB/RGBA samples losslessly. Reducing 16-bit data or discarding profiles and metadata before encoding is outside that guarantee.
The published QOI format defines one image and a colour-space flag, not Exif chunks, ICC profiles or timed frames. Keep required metadata separately or use another container.
The application needs a QOI decoder. The reference implementation helps integrate support; a .qoi extension does not make the file a browser-native PNG or JPEG.
PNG can preserve decoded RGB/RGBA samples. JPEG discards alpha and adds lossy coding; GIF reduces colours. Conversion cannot restore metadata or precision that QOI never stored.
Use QOI for application-controlled image assets and intermediate storage when both ends implement it. It is not an animated format or a substitute for a layered master. Converting high-precision or metadata-rich sources to QOI needs deliberate reduction, even though the QOI coding step is lossless for its supported pixels.