Xamarin与Fellow-oak DICOM不会在bin文件夹中创建DicomNative.dll

时间:2017-01-06 13:12:16

标签: c# android xamarin dicom fo-dicom

我在Windows 8.1 Xamarin项目(共享项目,Xamarin.Android和Xamarin.iOS)上创建,这是一个简单的dicom图像查看器。

我们正在使用通过nuget-packages安装的Fellow-oak Dicom。

在共享项目中,有一种方法负责使用 Fellow-oak DICOM 中的DicomImage对象加载新的dicom图像。

foreach(string file_name in files)
        {
            try
            {

                dicom_file = DicomFile.Open(file_name);
                DicomImage dcmimg = new DicomImage(file_name);

                file_list.Add(dcmimg);
            }catch(Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }

负责加载DicomImage的函数从Xamarin.Android调用 在移动设备上部署应用程序并尝试加载dcm映像后,会发生崩溃并显示以下错误: “没有针对传输语法注册的编解码器:JPEG 2000图像压缩”

经过研究,我发现可能是问题的根源:缺少应该在构建项目后创建的DicomNative dll,但它不是。所以在互联网上有人说将目标平台设置为x64或x86,但它没有帮助。 我已经在x64的解决方案中设置了所有项目的目标平台,然后我尝试使用x86。

还有其他方法强制包括这个dll(我不知道从哪里可以下载物理上这个缺乏编解码器)或者可能还有其他一些解决这个问题的方法?

1 个答案:

答案 0 :(得分:1)

在适用于Xamarin iOS和Android的 fo-dicom 版本2.0.x中,根本不支持压缩编解码器。

在目前处于测试阶段的3.0版本中,对于 Xamarin iOS和Android,对JPEG 8位基线和渐进式编解码器以及JPEG2000 8位(单色和RGB)的支持有限。

全面支持,包括12位和16位单色图像,JPEG Lossless和JPEG-LS近无损和无损,仅适用于.NET Framework和通用Windows平台,UWP。缺少 Dicom.Native DLL的问题仅与.NET Framework有关。

.NET Framework和UWP实现使用更完整的C / C ++类库来支持编解码器,而 Xamarin 实现当前正在使用基于C#的托管代码类库{{3} }和LibJpeg.NET在DICOM上下文中受到更多限制。