DCMTK:将 DICOM 文件写入内存

DCMTK: Write DICOM file to memory

我正在使用 DCMTK 将 DICOM 文件写入磁盘,效果很好。所以,我简要地做了如下事情:

DcmDataset * ds = image->dcm_file_format->getDataset();
// Modify DICOM as needed...
DcmFileFormat file_format(ds);
file_format.saveFile(filename);

这个效果很好。但是,我想将内容写入一些内存缓冲区。所以,我想做如下事情:

char * buffer = new char[file_length];

然后以某种方式使用 file_format 写入此缓冲区而不是文件。我看到 DcmFileFormat 中有一个 'write' 方法,但无法弄清楚如何在我可以指定我自己的字节数组写入的地方使用它。

你可以看看Orthanc, a lightweight Vendor Neutral Archive for medical imaging. Orthanc writes its DICOM instances to memory buffers (std::string) in the method Orthanc::FromDcmtkBridge::SaveToMemoryBuffer(). Here is a direct link to this method的源码。