The main interface classes are:
DcmFileFormat infile; DcmFileFormat outfile; if (infile.loadFile("image.dcm").good()) { DVPresentationState pstate; // presentation state handler if (pstate.createFromImage(*infile.getDataset()).good()) { // serialize presentation state into DICOM data set structure if (pstate.write(*outfile.getDataset(), OFFalse).good()) { // and write to file outfile.saveFile("gsps.dcm", EXS_LittleEndianExplicit); } } }
The following example shows how to apply the grayscale transformation pipeline from a presentation state to a DICOM image:
DcmFileFormat imagefile; DcmFileFormat gspsfile; if (imagefile.loadFile("image.dcm").good() && gspsfile.loadFile("gsps.dcm").good()) { DVPresentationState pstate; // presentation state handler if (pstate.read(*gspsfile.getDataset()).good()) // parse gsps object { // attach presentation state to image data if (pstate.attachImage(&imagefile, OFFalse).good()) { const void *pixel; // pointer to pixel data, one byte per pixel unsigned long width; // width of image bitmap unsigned long height; // height of image bitmap if (pstate.getPixelData(pixel, width, height).good()) { /* do something useful with the pixel data */ } pstate.detachImage(); // release connection between GSPS and image } } }