我正在使用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'方法,但无法弄清楚如何使用它,我可以指定自己的字节数组来写入。
答案 0 :(得分:0)
您可以查看Orthanc的源代码,这是一个用于医学成像的轻量级供应商中性档案。 Orthanc将其DICOM实例写入方法std::string
中的内存缓冲区(Orthanc::FromDcmtkBridge::SaveToMemoryBuffer()
)。这是direct link to this method。