OpenSlide

Fork me on GitHub

New Windows build, 2023-04-14

Windows build 20230414 integrates most dependencies into the OpenSlide DLL, and also updates various dependencies.

New Windows build, 2022-12-17

Windows build 20221217 updates OpenSlide Java and several dependencies.

OpenSlide Java version 0.12.3, 2022-12-17

OpenSlide Java 0.12.3 adds a Meson build system, deprecates the Autotools+Ant one, and fixes builds on newer JDKs.

New Windows build, 2022-11-11

Windows build 20221111 updates the versions of many dependencies.

New Windows build, 2022-08-11

Windows build 20220811 fixes crashes in the 64-bit binaries when reading invalid JPEG or PNG images.

New Windows build, 2022-08-06

Windows build 20220806 updates the compiler and all dependencies to current versions.

OpenSlide Python version 1.2.0, 2022-06-17

OpenSlide Python 1.2.0 drops support for Python older than 3.7. It also supports cache customization with OpenSlide 3.5.0, improves pixel read performance, and improves installation documentation.

OpenSlide Python version 1.1.2, 2020-09-13

OpenSlide Python 1.1.2 fixes compatibility with setuptools ≥ 46, Python 3.9, and Sphinx 2.x.

New Windows build, 2017-11-22

Windows build 20171122 updates the versions of many dependencies.

OpenSlide Java version 0.12.2, 2016-09-11

OpenSlide Java 0.12.2 fixes builds on JDK 9 and on Mac OS X.

New Windows build, 2016-07-17

Windows build 20160717 updates OpenJPEG to version 2.1.1.

New Windows build, 2016-06-12

Windows build 20160612 fixes crashes in the 32-bit binaries when called from code compiled with MSVC.

OpenSlide Python version 1.1.1, 2016-06-11

OpenSlide Python 1.1.1 changes the default Deep Zoom tile size to 254 pixels to improve viewer performance. It also fixes exceptions with Pillow 3.x and with large reads when the extension module is not installed.

New Windows build, 2015-05-27

Windows build 20150527 fixes crashes in the 32-bit binaries.

OpenSlide version 3.4.1, 2015-04-20

OpenSlide 3.4.1 adds support for Philips TIFF and Ventana TIFF, improves the performance of JPEG and JP2K decoding, and adds support for OpenJPEG 2.1.0. It also includes fixes and improvements for Aperio, Hamamatsu, Leica, Sakura, and Ventana slides, as well as many portability fixes.

Windows build 20150420 also adds separate debug symbols for all binaries.


Older news is available here.

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.4.1, released 2015-04-20.

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

OpenSlide and its official language bindings are released under the terms of the GNU Lesser General Public License, version 2.1.

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.

OpenSlide’s support for these formats is not endorsed by their respective vendors and may be incomplete. Problems should be reported to the OpenSlide mailing list or issue tracker.

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

See how some projects use OpenSlide.

Demo

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

Documentation

Getting Help

First, try the search box at the top of the page. It covers the OpenSlide website, mailing list, issue tracker, and wiki.

Questions should be sent to the users mailing list. If you think you have found a bug, please report it in the appropriate issue tracker.

Mailing Lists

There are two mailing lists for OpenSlide:

Development

Some developer documentation is available:

Development of OpenSlide happens on GitHub:

Test Data

Some freely-distributable test data is available.

Publications

The design and implementation of the library are described in a published technical note:

OpenSlide: A Vendor-Neutral Software Foundation for Digital Pathology
Adam Goode, Benjamin Gilbert, Jan Harkes, Drazen Jukic, M. Satyanarayanan
Journal of Pathology Informatics 2013, 4:27
Abstract HTML Get PDF

There is also an older 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.