当前位置: 首页 > 知识库问答 >
问题:

使用Fello-Oak DICOM的Xamarin不会在bin文件夹中创建DICOMnative.dll

卢阳成
2023-03-14

我在Windows8.1上创建了Xamarin项目(共享项目,Xamarin.android和Xamarin.ios),这是一个简单的dicom图像查看器。

我们使用的是通过nuget-packages安装的Fello-Oak Dicom。

在共享项目中,有一种方法负责使用来自Fello-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调用负责加载DicomImage的函数。Android在移动端部署应用程序并尝试加载dcm图像后,出现崩溃,并显示以下错误:“no codec registrated for transfer syntax:JPEG 2000 image compression”(没有注册的codec for transfer syntax:JPEG 2000 image compression)

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

有没有其他的方法来强制包括这个dll(我不知道从哪里我可以下载这个缺少编解码器的物理),或者有没有其他的方法来解决这个问题?

共有1个答案

诸葛令
2023-03-14

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

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

包括12位和16位单色图像、JPEG无损和JPEG-LS接近无损和无损的全面支持仅在.NET Framework和通用Windows平台UWP上可用。缺少DICOM.Native DLL的问题仅与.NET Framework有关。

NET Framework和UWP实现正在使用更完整的C/C++类库来支持编解码器,而Xamarin实现目前正在使用基于C#的托管html" target="_blank">代码类库libjpeg.net和CSJ2K,这两个类库在DICOM上下文中的限制要大得多。

 类似资料:
  • 但是当我执行'java--list-modules'时,它列出了所有的模块。 如何从app.main模块运行主类?模块到底复制到哪里了?

  • 我正在使用Xamarin平台开发一个Android应用程序,我试图在本地存储上创建一个文件夹,但没有成功。 首先我试着使用这个系统。通过Xamarin Forms Labs创建的FileManager类创建IO命名空间。我通过“/storage/emulated/0/`”路径传递的函数片段。 这不起作用,所以我选择使用PCLstore一个用于跨平台文件操作的库。我试过这个代码。 没有工作。我导航到

  • 问题内容: import java.io.File; File folder = new File(Environment.getExternalStorageDirectory() + “/TollCulator”); boolean success = true; if (!folder.exists()) { //Toast.makeText(MainActivity.this, “Dire

  • 问题内容: 我不熟悉Swift,也不确定如何从字符串路径(或某种对象)创建新文件夹 这是在带有Cocoa的OS X上。 问题答案: 我的理解是,您正在尝试使用swift以编程方式创建目录。下面给出的代码执行相同的操作。

  • 问题内容: 我有问题让用户通过ajax请求>路由> controller @ method在laravel 4中创建文件夹。 我确实对url调用权方法测试了ajax成功请求。 当我使用或(此方法存在吗?)时,我将得到响应并且无法创建新文件夹..该如何解决? route.php AdminDashboardController js 问题答案: 不,实际上是 另外,您可以尝试以下操作: 更新: 确实

  • 问题内容: 我已经阅读了Node.js的文档,除非我错过了一些内容,否则它不会告诉某些操作(特别是)中包含哪些参数。正如您在文档中看到的那样,它不是很多。 当前,我有以下代码,该代码尝试创建一个文件夹或使用现有的文件夹: 但是我想知道这是正确的方法吗?检查代码是否正确知道文件夹已存在?我知道我可以在创建目录之前执行此操作,但这已经是对文件系统的两次打击。 其次,是否有Node.js的完整或至少更详