Imebra C++ DICOM SDK is a multiplatform open source C++ DICOM library for Windows, Linux, Android, iOS, OS-X.
Dicom library suitable for open source and commercial applications
The full C++ source code of the library, examples and API documentation are freely available under the GPL-2 license. A commercial license is also available.
The plain C++ source code can be compiled with gcc, clang, Visual Studio.
Helper methods in Objective-C allow to use the library for iOS and OS-X projects targeting iPhone, iPad and Mac pcs.
Java bindings for Android (JNI wrappers) JNI & pre-built libraries for different Android architectures.
Easy to use
The Imebra Dicom C++ library is self-contained and needs only the STL and ICONV libraries on Linux and iOS/OS-X (installed by default). On Windows ICONV is not required.
Extensive documentation and several examples illustrate how to use the library.
The source code is well commented and can be easily extended.
Pre-compiled libraries for Android (with Java bindings) are available for download, while iOS and OS-X projects can use the Objective-C helper methods distributed with the library.
- Dicom3 file parser and builder
Imebra can handle DICOM 3, NEMA and Jpeg files and supplies both high-level and raw access to the loaded data
- Support compressed (lossy/lossless) and raw images
The embedded images can be easily decompressed or converted to other color formats or bit depth.
Image compression and decompression in the following formats:
- jpeg baseline (8 bits per color channel lossy), transfer syntax 1.2.840.10008.1.2.4.50
- jpeg baseline extended (12 bits per color channel lossy), transfer syntax 1.2.840.10008.1.2.4.51
- jpeg lossless (up to 16 bits per color channel lossless), transfer syntaxes 1.2.840.10008.1.2.4.57 and 1.2.840.10008.1.2.4.70
- raw dicom (up to 16 bits per color channel lossless), transfer syntaxes 1.2.840.10008.1.2, 1.2.840.10008.1.2.1 and 1.2.840.10008.1.2.2
- rle dicom (up to 16 bits per color channel lossless), transfer syntax 1.2.840.10008.1.2.5
- DICOMDIR support
Can parse and build DICOMDIR files
- Unicode support
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
- Lazy load of large tags
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
- Dicom3 & NEMA
can parse Dicom3 and old NEMA streams and can build Dicom3 streams
- Support for nested datasets (sequences)
Nested datasets are used to contain several frames, color palettes or DICOMDIR data. Imebra SDK fully supports nested datasets
- Color space conversion
The API library supplies the transform classes that perform the color conversion, VOI/LUT calculation and high bit shift
- 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.
Technical support and priority bug fixing is provided to buyers of the commercial license or to open source projects.
Buy commercial license