我正在使用 fo-Dicom 访问图像流。我有单元测试调用加载测试 DICOM 文件的方法。为了自动化构建管道中的过程,我从使用图像路径切换到加载资源。我现在像这样加载我的测试 DICOM 文件:
public static DicomFile RequestDicomFile(Resource resource)
{
//return DicomFile.Open(Reference.GetPath(resource));
DicomFile result = null;
var assembly = Assembly.GetExecutingAssembly();
using (Stream stream = assembly.GetManifestResourceStream($"CommonTesting.Resources.{resource.ToString()}.dcm"))
{
result = DicomFile.Open(stream);
}
return result;
}
这将返回一个 DicomFile,我可以访问相关的标签。但是,当我使用下面的(缩写)代码加载图像时,在 RenderImage 行上出现“无法从流中读取 - 可能已关闭”的异常。
DicomImage images; = new DicomImage(dicom.Dataset);
if (images.NumberOfFrames > 0)
{
var imageData = images.RenderImage(0).As<Bitmap>();
...
}
当我从文件路径(RequestDicomFile 中注释掉的代码)打开 DicomFile 时,我可以访问渲染的图像。
有谁知道为什么资源文件会发生这种情况?或者,是否有更好的方法来引用我的测试文件,而无需尝试将它们复制到 Azure 管道中的正确路径?