Introduction

C library and executable tools for reading and writing DICOM data sets.

Supported parts of the standard

  • Part 5 - Data Structures and Encoding

  • Part 6 - Data Dictionary

  • Part 10 - Media Storage and File Format for Media Interchange

Note that the library does not read the Pixel Data element at once, but instead provides an interface to randomly access individual frame items of Pixel Data elements. However, the library does not concern itself with decoding the values of frame items.

Design goals

The library aims to:

  • Provide a stable application binary interface (ABI)

  • Be highly portable and run on Linux, Unix, macOS, and Windows operating systems with different architectures

  • Be dead simple and free of surprises

  • Have no external build or runtime dependencies

  • Be easily callable from other languages via a C foreign function interface (FFI)

  • Be fast to compile and produce small binaries

  • Be easty to compile to WebAssembly using Emscripten