VS2019,fo-dicom v4.0.8
csharp
using Dicom.Imaging.Codec;
...
DicomJpegLsLosslessCodec //CS0103 当前上下文中不存在名称"DicomJpegLsLosslessCodec"
但官方文档的确存在该类的说明DicomJpegLsLosslessCodec
尝试:安装包fo-dicom.Codecs,注意fo-dicom v4.0和v5.0的包不同。
对于fo-dicom v4.0,包名称为Efferent.Native,使用方法是在程序开始的地方加这一句
csharp
Dicom.Imaging.Codec.TranscoderManager.SetImplementation(new Efferent.Native.Codec.NativeTranscoderManager());
Efferent.Native v4.1.0,git上说只测试了fo-dicom v4.0.5,实际上最低要求fo-dicom v4.0.8,实测在TranscoderManager.SetImplementation
处报错
对于fo-dicom v5.0,包名称为fo-dicom.Codecs,使用方法是在程序开始的地方加这一句
csharp
new DicomSetupBuilder()
.RegisterServices(s => s.AddFellowOakDicom().AddTranscoderManager<FellowOakDicom.Imaging.NativeCodec.NativeTranscoderManager>())
.SkipValidation()
.Build();
fo-dicom v5.1.1 + fo-dicom.Codecs v5.10.8 + fo-dicom.Imaging.Desktop v5.1.0
但是运行至需要编解码的地方,就会报错System.DllNotFoundException[Dicom.Native.dll],dll已经在运行目录了,说明是dll调不动,可能存在平台兼容性
结论:无解,只能通过其它办法压缩