Original test data

We opened 792 real slide files and published every result

Format support tables are usually a list of extensions somebody typed. This one is a measurement. Every file across 14 format families — 44.1 GB of vendor scans and public reference imagery — was opened and rendered by the shipping SlideScope loaders, one file per sacrificial subprocess, and the outcome recorded. 767 opened. 9 could not be read, and they are named below. 16 turned out to carry no image at all. None crashed the viewer.

792 files 14 format families 44.1 GB tested Run 2026-09-18

What does this benchmark actually prove?

That a named file, from a named scanner, at its real size, opens in the shipping build and puts pixels on screen. Nothing more and nothing less. A format-support list claims a capability; this measures one. If a vendor layout defeats the decoder, that file appears in the failure table with the error text a user would see, not as a missing row.

It is a vendor test — we wrote the software and we ran the test. What makes it worth reading anyway is that you can check it: the corpora are public, the runner is in our desktop repository, and the raw per-file results are on this page.

How the files were tested

Each file is handed to a sacrificial child process that builds the same loader the application builds, reads the image dimensions, decodes a plane, and converts it through the same Qt render path the viewer uses. A malformed file that aborts a native codec kills only that child; the supervisor records which file was in flight and carries on. That design is why a benchmark over multi-gigabyte vendor scans can finish at all, and why "crashed" is a category this table can honestly report as zero.

  • Runner: slidescope-desktop/scripts/publish_format_benchmark.py — one command, in the SlideScope desktop repository, that runs all three passes and writes the exact JSON this page renders: python scripts/publish_format_benchmark.py --dataset <corpus> --output format-benchmark.json
  • Corpora: the Open Microscopy Environment public reference corpus, OpenSlide's published test slides, the czitools and nd2 library test data, and vendor samples whose sha256 we verified against the publisher.
  • Scope: whole slide and vendor microscopy formats. Loose single-plane TIFFs from bulk vendor dumps are excluded — they say nothing a pyramidal WSI TIFF does not say better.
  • Recorded per file: detected format, loader, decoded T/Z/C/Y/X dimensions, pixel type, rendered size, and on failure the exception type and the user-facing message.

Whole slide image formats

These are the scanner formats — the files that arrive from an Aperio, Hamamatsu, 3DHISTECH, Leica, Ventana, Akoya or Agilent instrument and routinely run to several gigabytes.

Format Files Opened Outcome Largest image Largest file Axes reached Pixel types
.avs Agilent ARGOS AVS 2 2 all opened 130,546 × 57,440 (7499 MP) 439 MB single plane uint8
.bif Ventana BIF 2 1 1 not readable 114,943 × 76,349 (8776 MP) 2.5 GB single plane uint8
.mrxs 3DHISTECH MIRAX 6 6 all opened 109,240 × 220,696 (24109 MP) 72 KB single plane uint8
.ndpi Hamamatsu NDPI 5 5 all opened 211,200 × 95,744 (20221 MP) 4.2 GB single plane uint8
.qptiff Akoya QPTIFF 2 2 all opened 30,720 × 26,640 (818 MP) 1.9 GB 5C uint8
.scn Leica SCN 3 1 2 not readable 53,130 × 153,470 (8154 MP) 2.8 GB single plane uint8
.svs Aperio SVS 7 7 all opened 96,999 × 45,667 (4430 MP) 671 MB single plane uint8
.vms Hamamatsu VMS 3 3 all opened 143,360 × 101,888 (14607 MP) 1 KB single plane uint8

Microscopy and medical imaging formats

Multi-dimensional acquisition formats, where the interesting question is not file size but how many channels, Z planes and timepoints survive the trip to the screen.

Format Files Opened Outcome Largest image Largest file Axes reached Pixel types
.czi Zeiss CZI 48 48 all opened 6,000 × 6,000 (36 MP) 4.2 GB 8C · 56Z · 10T uint16, uint8
.dcm DICOM 378 362 16 carry no image 77,687 × 73,366 (5700 MP) 1.2 GB 137Z int16, uint16, uint8
.dicom DICOM 1 1 all opened 512 × 512 (0 MP) 514 KB single plane uint16
.ims Imaris IMS 17 11 6 not readable 4,096 × 4,096 (17 MP) 946 MB 3C · 98Z · 10T uint16, uint8
.lif Leica LIF 3 3 all opened 1,024 × 1,024 (1 MP) 2.8 GB 5C · 5T uint16, uint8
.nd2 Nikon ND2 82 82 all opened 2,400 × 2,400 (6 MP) 376 MB 5C · 35Z · 288T uint16, uint8
.tif TIFF / OME-TIFF 200 200 all opened 17,927 × 20,273 (363 MP) 1.0 GB 8C · 10Z · 43T float32, int8, uint8
.tiff TIFF / OME-TIFF 33 33 all opened 45,056 × 35,840 (1615 MP) 2.5 GB 3C · 38Z · 7T float32, int8, uint8

Every file that did not open, and why

25 of the 792 files did not open, and they are not one story but two. 9 are real limitations: a genuine image we cannot currently read. The other 16 are files that contain no image in the first place, where refusing is the correct answer. Lumping the two together would flatter us — the honest failure count for this run is 9, not 25.

Real limitations: 9 files we cannot read

Every one of these is pristine — checksums match the publisher — so these are decoder and vendor-layout limits, not damaged samples. They stay in the corpus permanently as regression coverage, which is how we find out the day one of them starts working.

File Size Error What SlideScope tells the user
.bif Ventana-1.bif 217 MB ImageLoadError This slide uses a vendor layout the OpenSlide backend cannot open. The file itself is not damaged.
.ims Convallaria_3C_10T_confocal_IMS3.ims 68 MB ImageLoadError This .ims file is not the HDF5-based Imaris format SlideScope supports. Older, pre-HDF5 Imaris exports (sometimes called "Imaris Classic") use a different container and are not currently supported.
.ims Convallaria_3C_1T_2x2grid_confocal_IMS3.ims 23 MB ImageLoadError This .ims file is not the HDF5-based Imaris format SlideScope supports. Older, pre-HDF5 Imaris exports (sometimes called "Imaris Classic") use a different container and are not currently supported.
.ims Convallaria_3C_1T_confocal_IMS3.ims 8 MB ImageLoadError This .ims file is not the HDF5-based Imaris format SlideScope supports. Older, pre-HDF5 Imaris exports (sometimes called "Imaris Classic") use a different container and are not currently supported.
.ims Convallaria_3C_3T_2x2grid_confocal_IMS3.ims 66 MB ImageLoadError This .ims file is not the HDF5-based Imaris format SlideScope supports. Older, pre-HDF5 Imaris exports (sometimes called "Imaris Classic") use a different container and are not currently supported.
.ims Convallaria_3C_3T_35Z_confocal_deconvolved_IMS3.ims 661 MB ImageLoadError This .ims file is not the HDF5-based Imaris format SlideScope supports. Older, pre-HDF5 Imaris exports (sometimes called "Imaris Classic") use a different container and are not currently supported.
.ims TransFactors_2C_SRRF_IMS3.ims 26 MB ImageLoadError This .ims file is not the HDF5-based Imaris format SlideScope supports. Older, pre-HDF5 Imaris exports (sometimes called "Imaris Classic") use a different container and are not currently supported.
.scn Leica-Fluorescence-1.scn 21 MB ImageLoadError This slide uses a vendor layout the OpenSlide backend cannot open. The file itself is not damaged.
.scn Leica-3.scn 2.8 GB ImageLoadError This slide uses a vendor layout the OpenSlide backend cannot open. The file itself is not damaged.

The pattern is vendor layout, not modality. Fluorescence NDPI and fluorescence MIRAX both open normally; it is specific structural variants — a SCN with no identifiable main image, a BIF with an unexpected direction attribute, a pre-HDF5 "Imaris Classic" container — that the backends decline. Each message names the cause rather than calling the file corrupt, because in every one of these cases the file is fine and we are not.

Not failures: 16 objects that carry no image

DICOM is a document format as much as an image format. A DICOMDIR is an index of a disc; a presentation state records how someone once windowed a study; other objects hold reports or measurements. None contains pixels. A viewer that opened them would have nothing to show, so SlideScope declines with an explanation — the right behaviour, counted separately so it cannot pad either column.

Named in full so nothing is hidden behind a category: DICOMDIR, PS_0026, PS_0108, PS_0128, PS_0154, PS_0181, XX_0027, XX_0109, XX_0155, XX_0182, XX_0183.

Where SlideScope opens a file and shows the wrong thing

This is the failure mode that matters most and the one format tables never admit to, so here is ours.

A multiplex Akoya .qptiff scan — the Vectra seven-colour reference file — opens with no error at all. The file holds five full-resolution single-channel fluorescence pages (DAPI, FITC, CY3, Texas Red, CY5) at 34,560 × 24,960 across 33 pages, confirmed independently with tifffile. SlideScope routes .qptiff to its OpenSlide backend, which is a brightfield reader, so it reports one channel and returns an RGB slice. The fluorescence channels are unreachable and the channel controls have nothing to offer.

Nothing warns you. The brightfield H&E QPTIFF scans in the same corpus open perfectly, which is exactly why this went unnoticed. If you work with multiplex QPTIFF, this is a real limitation today and it is on the roadmap rather than in the product.

Opening is proved by this run. Pixel correctness is a separate question, and we test it separately: a second sweep decodes the same planes through the underlying library and compares them against what the loader returns. That is how the QPTIFF case was caught.

What SlideScope refuses to open

There is no generic fallback reader, and how a viewer handles a file it was never built for matters as much as the files it was. We took the smallest real file of every unsupported extension in the reference corpus — 93 of them — and put each one through the shipping loader factory.

93 of 93 were refused with a clear message. None crashed. None were half-opened into something that looked like an image but was not. The list includes formats people plausibly try — .jpg, .lof, .nii, .oib, .oir, .png, .psd, .raw, .vsi — and yes, that covers .png and .jpg: SlideScope is a scientific-image viewer, not a picture viewer, and it says so rather than guessing.

What this benchmark does not tell you

  • Two formats have no real-file coverage at all. No public .vmu or .svslide sample exists — OpenSlide publishes neither — so those loaders are exercised only by synthetic edge cases. We are not claiming tested support for them.
  • It is not a speed benchmark. Time-to-first-pixel depends on your disk, and these runs were local.
  • It is not an accuracy audit beyond the pixel-comparison sweep described above, and it is not a clinical validation. SlideScope is for research, education and review — not diagnosis.
  • It is a snapshot. Dated 2026-09-18 against the release current on that day. Decoder upgrades move these numbers in both directions.

Questions about this benchmark

Which microscopy and whole slide formats does SlideScope actually open?

Eighteen file extensions: .svs, .ndpi, .mrxs, .scn, .bif, .vms, .vmu, .svslide, .qptiff, .avs, .czi, .nd2, .lif, .ims, .dcm, .dicom, .tif and .tiff. There is no generic fallback reader — anything outside that list is refused with a plain message rather than opened badly.

Is this benchmark independent?

No. SlideScope publishes it about SlideScope, so treat it as a vendor test, not a third-party audit. What we can offer instead of independence is checkability: the corpora are public, the runner is in our open script directory, the raw result file is linked on this page, and the failures are listed with the same detail as the successes.

Why do some files fail?

Almost always because a vendor wrote a layout the underlying open-source backend cannot read — OpenSlide reporting "Can't find main image" on a fluorescence SCN, for example. Those are upstream limitations we surface rather than hide. The failing files are pristine: their checksums match the publisher's.

Does opening a file mean the image is correct?

Not by itself, which is why we test both. Opening is proved by this run; pixel correctness is proved separately by sweep_format_reference.py, which decodes the same planes through the underlying library and compares them against what SlideScope renders. One known case — a multiplex Akoya QPTIFF — opens without error and still shows the wrong thing. It is documented on this page.

Can I reproduce this?

Yes. The Open Microscopy Environment reference corpus is a public download, the vendor samples come from OpenSlide and the format libraries' own test data, and the runner ships in the SlideScope desktop repository. The raw JSON behind every table on this page is linked above.

Is SlideScope approved for clinical diagnosis?

No. SlideScope is for research, education and review. It is not a diagnostic device and must not be used to make a primary diagnosis.

The only test that counts is yours

Our corpus is not your slide drawer. Install SlideScope, open the files that actually give you trouble, and if one of them fails, send it to us — the failures on this page got here because somebody did.

Download SlideScope