fo-dicom缺少DicomJpegLsLosslessCodec

VS2019,fo-dicom v4.0.8

using Dicom.Imaging.Codec;
...
DicomJpegLsLosslessCodec  //CS0103 当前上下文中不存在名称“DicomJpegLsLosslessCodec”	

但官方文档的确存在该类的说明DicomJpegLsLosslessCodec

尝试:安装包fo-dicom.Codecs,注意fo-dicom v4.0和v5.0的包不同。

对于fo-dicom v4.0,包名称为Efferent.Native,使用方法是在程序开始的地方加这一句

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,使用方法是在程序开始的地方加这一句

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调不动,可能存在平台兼容性

结论:无解,只能通过其它办法压缩

你可能感兴趣的:(dicom)