Skip to content
Cullant

Supported RAW, HEIF and video formats

Cullant reads every mainstream RAW format, plus HEIF, the common image formats and video. This page also names what it cannot draw, because a blank cell you were warned about is a limitation, and a blank cell you were not is a bug.

Two words that are not the same

Catalogued

Cullant knows the file. It counts it, groups it with the rest of the shot, filters, rates and labels it, and deletes or moves it with everything else.

Rendered

A thumbnail and a loupe preview exist. A file can be catalogued without being rendered, and that is on purpose.

The distinction is what keeps a rejected shot from leaving a stray file behind. Cullant used to skip any extension it did not recognise, and a .HIF would survive on disk after its shot was gone.

RAW

Cullant catalogues and groups every extension below. To draw one, it pulls out the JPEG preview your camera wrote inside the file. It never demosaics the sensor data, which is why it is fast.

MakerExtensionsNotes
Canon.CR3 .CR2 .CRWNothing to watch for
Nikon.NEF .NRWNothing to watch for
Sony.ARW .SR2 .SRFNothing to watch for
Fujifilm.RAFNothing to watch for
Panasonic.RW2 .RAWAn older .RAW body writes no preview. Those files catalogue, but stay blank.
OM System, Olympus.ORF .ORS .ORIThe preview hides in the MakerNote. Cullant goes and gets it.
Leica, Sigma, Pentax, phones.DNGA Sigma fp writes an 8 KB preview and nothing larger, so its loupe view is soft.
Pentax, Ricoh.PEFNothing to watch for
Samsung.SRWNothing to watch for
Sigma.X3FNothing to watch for
Hasselblad.3FR .FFFNothing to watch for
Phase One.IIQNothing to watch for
Epson, Mamiya, Kodak, Leaf.ERF .MEF .MOS .KDC .DCRNothing to watch for

Compression variants usually do not matter. Canon C-RAW, Nikon HE★, Sony lossless L, M and S, and Phase One IIQ S v2 all keep a preview, and pulling it out never touches the compressed data. A variant only matters when the file holds no preview at all.

HEIF, and the iPhone

.HEIC .HEIF .HIF .HSP

The metadata always works. A library of nothing but iPhone photos still sorts by real capture time and fills every filter: camera, lens, ISO, aperture, date. That part needs no decoder.

The pixels depend on your machine. Cullant carries no HEVC decoder and will not add one: every library that decodes HEVC is a C dependency, and it would have to cross-compile for four Android processors. So Cullant borrows a decoder from the system instead, and tries each of these in turn.

PlatformDecoderWhat it needs
AndroidImageDecoderAndroid 9 or later. Cullant asks the phone at run time.
WindowsWICThe HEIF and HEVC extensions from Microsoft. Many machines do not have them.
Any desktopffmpegffmpeg 7.0 or later. Version 6 cannot demux a still image.
iOS, iPadOSplannedImageIONot built yet.

When no decoder answers, the cell stays empty, and Cullant remembers nothing about it. Install a decoder later and the next look at that photo shows the picture. That is deliberate: marking the file as broken would keep it blank forever.

Images

.JPG .JPEG .PNG .TIF .TIFF .WEBP .BMP .GIF

Decoded by Cullant itself, with no help from the system. A JPEG beside a RAW is also what Cullant borrows to draw that RAW's thumbnail, because it holds the same frame in far fewer bytes.

Video

.MP4 .MOV .M4V

Video culls in its own tab, with the same ratings and the same queue. Poster frames need ffmpeg on a desktop; on Android the phone's own extractor does it. Without ffmpeg the clips still catalogue and still play.

Sidecars

.XMP

Read on every scan, written on every commit. A sidecar carries the rating, the flag, the colour label and the orientation, in the form Lightroom Classic and Capture One expect.

How a shot is grouped

Files that share a folder and a name are one shot, however many there are. One of them is the primary, the frame you see in the grid. Cullant picks it in this order.

  1. 1A RAW file
  2. 2An image Cullant decodes itself
  3. 3A companion RAW, such as an .ORI
  4. 4A HEIF
  5. 5Anything else

A companion RAW outranks a HEIF, although the HEIF often holds the better picture. The reason is certainty: the companion decodes on every machine, and a HEIF decodes only where the system lends a decoder. The order never changes while you work, so a project looks the same on every computer you open it on.

Known gaps

Found by running Cullant over a corpus of real camera files. They are listed here because you deserve to know before you trust a shoot to it.

  • Older Panasonic .RAW files hold no preview. They catalogue and group correctly, but the cell stays blank. Only a full demosaic would fill it, and that is too slow to do for a whole shoot.

  • Some DNG files hold a tiny preview. A Sigma fp writes 8 KB and nothing larger, so the loupe view of one is soft. It is enough to judge a frame, not enough to judge focus.