2016-05-16 42 views
0

试图按照以下要点将pdf嵌入到dcm文件中。我们的观众不支持嵌入式pdf。 pdf通过ghostscript转换为图像,并且在磁盘上为1000k(多页,150 dpi)。C#Dicom文件大,我怎么瘦?

https://gist.github.com/mdubey82/4030263

不管我做什么,fo-dicom需要1000K JPG或PNG或BMP文件,并创建一个11兆的DCM文件。

任何想法如何减少?

谢谢!

编辑


随着大量的帮助,这里是建立一个压缩DCM一个要点。

https://gist.github.com/WilliamDoman/e2365104f565a3bf9376fcec6609f432

回答

1

创建的DICOM文件没有压缩的像素数据。这意味着您的PDF格式可能是JPEG/JPEG2000压缩格式,正在解压缩并且正在创建一个非常大的DICOM文件。您希望查看ChangeTransferSyntax()方法以在保存之前重新压缩像素数据。

DicomFile file = new DicomFile(dataset); 
file.ChangeTransferSyntax(DicomTransferSyntax.JPEGProcess14SV1); 
file.Save("dicom.dcm"); 
+0

您可能在正确的轨道上。我认为这个语法可能与fo-dicom不同。我正在使用2.0.2版本。我会看看我能否找到类似的东西。 – William

+0

该语法已移至名称空间Dicom.Imaging.Codec中的扩展方法,但它对大小没有任何影响。我会继续玩。 – William

+0

路径中是否有_Dicom.Native.dll_和/或_Dicom.Native64.dll_文件可用?你有'LogManager'配置来确保在编码过程中没有错误发生? –