OpenSlide

Fork me on GitHub

OpenSlide Python version 0.3.0, 2011-12-16

Version 0.3.0 of the Python bindings fixes some crashes, adds Windows support, adds methods for obtaining Deep Zoom tile coordinates, and improves the example Deep Zoom tilers.

OpenSlide Java version 0.10.0, 2011-12-16

Version 0.10.0 of the Java bindings renames the package and library files, compiles using GNU Autotools, changes handling of associated images, and fixes OpenSlideView translation by large offsets.

OpenSlide version 3.2.5, 2011-12-16

Version 3.2.5 has been released, supporting MIRAX 1.03 files, fixing openslide_read_region for large dimensions, reducing memory usage, disabling quickhash-1 for unusual TIFFs where it is very slow, and fixing compilation errors.

OpenSlide Python version 0.2.0, 2011-09-02

The first release of the Python bindings includes complete access to the OpenSlide API, functionality for producing Deep Zoom images, and a simple web application for displaying whole-slide images in a browser.

OpenSlide version 3.2.4, 2011-03-07

Version 3.2.4 has been released, supporting MIRAX files without non-hierarchical sections, working around some GKeyFile bugs, and fixing compilation errors on Windows.

OpenSlide version 3.2.3, 2010-09-09

Version 3.2.3 has been released, supporting more MIRAX files, adding a background color property, fixing some MIRAX drawing bugs, and adding support for quickhash-1 on all platforms.

OpenSlide Java version 0.9.2, 2010-08-10

Version 0.9.2 of the Java bindings removes some experimental CMU-specific annotation support.

OpenSlide Java version 0.9.1, 2010-06-16

Version 0.9.1 of the Java bindings fixes a Windows build bug and removes checks for negative coordinates and zero dimensions.

OpenSlide version 3.2.2, 2010-06-16

Version 3.2.2 has been released, adding support for negative coordinates and zero-sized dimensions in openslide_read_region, fixing a Windows build bug with new NGR support, and adding untested BigTIFF support.

OpenSlide version 3.2.1, 2010-06-03

Version 3.2.1 has been released, fixing Windows crashes, quieting down the error logging, and fixing problems with libjpeg 7.

OpenSlide Java version 0.9.0, 2010-06-01

Version 0.9.0 of the Java bindings adds support for the error handling system, eliminates the swig dependency, and adds new methods for painting.

OpenSlide version 3.2.0, 2010-06-01

Version 3.2.0 has been released, adding experimental CMake support and fixes for building with MSVC, an error handling mechanism, initial Hamamatsu Nanozoomer VMU support, and the “openslide-write-png” tool.

OpenSlide version 3.1.1, 2010-04-27

Version 3.1.1 has been released, fixing some bugs reading invalid VMS files. VMS files with multiple layers (NoLayers > 1) are also supported now, but the additional layers are ignored.

OpenSlide version 3.1.0, 2010-04-01

Version 3.1.0 has been released, which fixes problems with some TIFF files and adds support for certain newer Aperio files (compression 33005).

OpenSlide version 3.0.3, 2010-03-01

Version 3.0.3 has been released, which fixes nasty artifacts in some MIRAX files seen at some zoom levels.

OpenSlide version 3.0.2, 2010-02-17

Version 3.0.2 has been released, which restores the ability to build with glib 2.12, at the expense of not having “quickhash-1” in that configuration.

OpenSlide version 3.0.1, 2010-02-04

Version 3.0.1 has been released, with a fix for drawing the edges of TIFF files.

OpenSlide Java version 0.8.0, 2010-01-28

Version 0.8.0 of the Java bindings changes the license to LGPLv2, fixes some bugs, adds a new selection type, and adds a call to paint a specific layer without scaling.

OpenSlide version 3.0.0, 2010-01-28

Version 3.0.0 has been released, with a license change to LGPLv2, introduction of “quickhash-1”, MIRAX bug fixes, and documentation improvements.

OpenSlide is a C library that provides a simple interface to read whole-slide images (also known as virtual slides). The current version is 3.2.5, released 2011-12-16.

Java and Python bindings are also available. The Java binding includes a simple image viewer. The Python binding includes a Deep Zoom generator and a simple web-based viewer.

Download

About OpenSlide

The library can read virtual slides in the following formats:

It provides a simple C interface for programmers to use to decode images of these kinds.

See Supported Virtual Slide Formats for more information.

OpenSlide is a product of the research group of M. Satyanarayanan (Satya) in the Carnegie Mellon School of Computer Science.

See how some projects use OpenSlide.

Demo

There is a web-based demo of OpenSlide rendering various slide formats.

Mailing Lists

There are two mailing lists for OpenSlide:

Documentation

Some documentation is included within the downloadable files. Additionally there is:

Development

Development of OpenSlide happens on GitHub:

Test Data

Some freely-distributable test data is available.

Tech Report

The architecture and design of the library is described in a technical report:

A Vendor-Neutral Library and Viewer for Whole-Slide Images
Adam Goode, M. Satyanarayanan
Technical Report CMU-CS-08-136, June 2008
Computer Science Department, Carnegie Mellon University
Abstract PDF

About whole-slide images

Whole-slide images, also known as virtual slides, are large, high resolution images used in digital pathology. Reading these images using standard image tools or libraries is a challenge because these tools are typically designed for images that can comfortably be uncompressed into RAM or a swap file. Whole-slide images routinely exceed RAM sizes, often occupying tens of gigabytes when uncompressed. Additionally, whole-slide images are typically multi-resolution, and only a small amount of image data might be needed at a particular resolution.

There is no universal data format for whole-slide images, so each vendor implements its own formats, libraries, and viewers. Vendors typically do not document their formats. Even when there is documentation, important details are omitted. Because a vendor’s library or viewer is the only way to view a particular whole-slide image, doctors and researchers can be unnecessarily tied to a particular vendor. Finally, few (if any) vendors provide libraries and viewers for non-Windows platforms. Some have gone with a server approach, pushing tiles through a web server, or using Java applets, but these approaches have shortcomings in high-latency or non-networked environments.

Acknowledgements

OpenSlide has been supported by the National Institutes of Health and the Clinical and Translational Science Institute at the University of Pittsburgh.

NIH logo