Imebra C++ DICOM SDK: multiplatform open source C++ DICOM library for Windows, Linux, Android, iOS, OS-X.
The source code of the C++ API library, examples and documentation are freely available under the GPL license. A commercial license is also available.
- The API library can handle DICOM 3, NEMA and Jpeg files and supplies both high-level and raw access to the loaded data.
- The embedded images can be easily decompressed or converted to other color formats or bit depth; writing Dicom Viewers is a quick and easy task.
- Imebra C++ DICOM Library can parse and build DICOMDIR files.
- Imebra C++ DICOM Library also supports the Unicode standard (on the fly conversion to/from DICOM charsets), the caching of large tags, and the transactions (never leave a dataset in an unconsistent state).
- Suitable for open source applications and commercial applications
A sample application (dicom2jpeg) supplied with the API library allows to convert dicom files to jpeg or movies.
- Multi platform
Linux, Windows, iOS, Android, OS X
- Plain C++
The source code can be compiled with gcc, clang, Visual Studio
- On Android
JNI wrappers & Pre-built libraries for different architectures, DicomView that displays DICOM images with zoom and pan support
- Full source code
The full source code and the documentation are available under the GPL.
The source code is well commented and can be easily extended.
- Self contained
The library needs only the STL and ICONV (or ICU) libraries. On Windows ICONV nor ICU are not required
- Dicom3 file parser and builder
The library can parse Dicom3 and old NEMA streams and can build Dicom3 streams.
- Jpeg file parser and builder
Imebra C++ DICOM Library can parse and build Jpeg streams. When a Jpeg stream is loaded it is automatically converted into an in-memory DICOM stream. The opposite operation is performed when a stream needs to be saved
- Image compression and decompression in the following formats:
- jpeg baseline (8 bits per color channel lossy)
- jpeg baseline extended (12 bits per color channel lossy)
- jpeg lossless (up to 16 bits per color channel lossless)
- raw dicom (up to 16 bits per color channel lossless)
- rle dicom (up to 16 bits per color channel lossless)
- Color space conversion
The API library supplies the transform classes that perform the color conversion, VOI/LUT calculation and high bit shift
- Support for nested datasets (sequences)
Nested datasets are used to contain several frames, color palettes or DICOMDIR data. Imebra SDK fully supports nested datasets.
- Support for Unicode and different DICOM charsets
Imebra C++ DICOM Library fully supports Unicode and the multiple charsets supported by the DICOM standard. The application doesn’t need to know about the DICOM charsets: Imebra C++ DICOM Library transforms the Unicode strings to the DICOM charsets and viceversa.
- Support for transactions
When your application fails while it is modifying a collection of tags then it can leave the dataset in an unconsistent state.
Imebra C++ DICOM Library prevents this by introducing the transaction: if one of the modifications fails inside the transaction, then all the modifications performed in the same transaction are rolled back.
Imebra C++ DICOM Library supports nested transactions.
- Load on demand
Larger tags can be loaded from the original stream only when they are needed. This process is transparent to the application, which can decide the minimum size of the tags that will be loaded on demand.
Imebra C++ DICOM Library automatically decides if a tag has to stay in memory (for instance because the application wants to change its content).
This feature improves significantly the performances when a dataset with several images is loaded.
Technical support and priority bug fixing is provided to buyers of the commercial license or to open source projects.
Buy commercial license