シンプルなdicom画像ビューアであるWindows8.1 Xamarin Project(共有プロジェクト、Xamarin.Android、Xamarin.iOS)で作成しました。
nuget-packagesを介してインストールされたFellow-oakDicomを使用しています。
Shared Projectには、Fellow- oakDICOMの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画像を読み込もうとすると、クラッシュが発生し、「転送構文にコーデックが登録されていません:JPEG2000画像圧縮」というエラーが表示されます。
調査の結果、おそらく問題の原因が何であるかがわかりました。プロジェクトのビルド後に作成する必要があるDicomNative dllがありませんが、そうではありません。そのため、インターネット上で、ターゲットプラットフォームをx64またはx86に設定することについての発言がありましたが、それは役に立ちませんでした。ソリューション内のすべてのプロジェクトのターゲットプラットフォームをx64に設定してから、x86で試してみました。
このdllを強制的に含める他の方法はありますか(この不足しているコーデックを物理的にダウンロードできる場所がわかりません)、またはこの問題に対する他の修正がありますか?
Xamarin iOSおよびAndroid用のfo-dicomのバージョン2.0.xでは、圧縮コーデックはまったくサポートされていません。
現在ベータ版であるバージョン3.0では、Xamarin iOSおよびAndroidの場合、JPEG8ビットベースラインおよびプログレッシブコーデックとJPEG20008ビット(モノクロおよびRGB)のサポートが制限されています。
12ビットおよび16ビットのモノクロ画像、JPEGロスレスおよびJPEG-LSニアロスレスおよびロスレスを含む包括的なサポートは、.NETFrameworkおよびユニバーサルWindowsプラットフォームUWPでのみ利用できます。欠落しているDicom.NativeDLLの問題は、.NETFrameworkにのみ関連しています。
.NET FrameworkとUWPの実装では、コーデックのサポートにさらに完全なC / C ++クラスライブラリを使用していますが、Xamarinの実装では、現在、DICOMコンテキストでかなり制限されているC#ベースのマネージコードクラスライブラリLibJpeg.NETとCSJ2Kを使用しています。 。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加