带有 Fellow-oak DICOM 的 Xamarin 不会在 bin 文件夹中创建 DicomNative.dll
Xamarin with Fellow-oak DICOM doesn't not create DicomNative.dll in bin folder
我在 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());
}
}
}
从 Xamarin.Android 调用负责加载 DicomImage 的函数
在移动设备上部署应用程序并尝试加载 dcm 图像后,发生崩溃并显示以下错误:
“没有为传输语法注册编解码器:JPEG 2000 图像压缩”
经过研究,我发现问题的根源可能是什么:缺少应该在构建项目后创建的 DicomNative dll,但它没有。所以在互联网上有关于将目标平台设置为 x64 或 x86 的说法,但没有帮助。
我已经将解决方案中的所有项目的目标平台设置为 x64,然后尝试使用 x86。
是否有任何其他方法强制包含此 dll(我不知道从哪里可以物理下载这个缺少的编解码器)或者可能有其他解决此问题的方法?
在 Xamarin iOS 和 Android 的 fo-dicom 版本 2.0.x 中,完全不支持压缩编解码器。
在目前处于 Beta 阶段的 3.0 版中,对于 XamariniOS 和 Android,对 JPEG 8 位基线和渐进式的支持有限编解码器和 JPEG2000 8 位(单色和 RGB)。
全面支持,包括 12 位和 16 位单色图像、JPEG Lossless 和 JPEG-LS 近乎无损和无损,仅适用于 .NET Framework 和 Universal Windows平台,UWP。缺少 Dicom.Native DLL 的问题仅与 .NET Framework 有关。
.NET Framework 和 UWP 实现正在使用更完整的 C/C++ class 库来支持编解码器,而 Xamarin 实现目前正在使用基于 C# 的托管代码 class 库 LibJpeg.NET and CSJ2K,这些库在 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());
}
}
}
从 Xamarin.Android 调用负责加载 DicomImage 的函数 在移动设备上部署应用程序并尝试加载 dcm 图像后,发生崩溃并显示以下错误: “没有为传输语法注册编解码器:JPEG 2000 图像压缩”
经过研究,我发现问题的根源可能是什么:缺少应该在构建项目后创建的 DicomNative dll,但它没有。所以在互联网上有关于将目标平台设置为 x64 或 x86 的说法,但没有帮助。 我已经将解决方案中的所有项目的目标平台设置为 x64,然后尝试使用 x86。
是否有任何其他方法强制包含此 dll(我不知道从哪里可以物理下载这个缺少的编解码器)或者可能有其他解决此问题的方法?
在 Xamarin iOS 和 Android 的 fo-dicom 版本 2.0.x 中,完全不支持压缩编解码器。
在目前处于 Beta 阶段的 3.0 版中,对于 XamariniOS 和 Android,对 JPEG 8 位基线和渐进式的支持有限编解码器和 JPEG2000 8 位(单色和 RGB)。
全面支持,包括 12 位和 16 位单色图像、JPEG Lossless 和 JPEG-LS 近乎无损和无损,仅适用于 .NET Framework 和 Universal Windows平台,UWP。缺少 Dicom.Native DLL 的问题仅与 .NET Framework 有关。
.NET Framework 和 UWP 实现正在使用更完整的 C/C++ class 库来支持编解码器,而 Xamarin 实现目前正在使用基于 C# 的托管代码 class 库 LibJpeg.NET and CSJ2K,这些库在 DICOM 上下文中受到的限制要大得多。