从资源加载时无法访问 DICOM 图像流

Cannot access DICOM image stream when loading from a resource

我正在使用 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;
    }

这 returns 一个 DicomFile,我可以访问关联的标签。但是,当我使用下面的(缩写)代码加载图像时,在 RenderImage 行上出现异常,提示“无法从流中读取 - 可能已关闭”。

        DicomImage images; = new DicomImage(dicom.Dataset);
        if (images.NumberOfFrames > 0)
        {
            var imageData = images.RenderImage(0).As<Bitmap>();
            ...
        }

当我从文件路径(RequestDicomFile 中注释掉的代码)打开 DicomFile 时,我能够访问渲染的图像。

有谁知道为什么资源文件会发生这种情况?或者,是否有更好的方法来引用我的测试文件,而无需尝试将它们复制到 Azure 管道中的正确路径?

解决方案是在打开 DICOM 文件时完全读取流。

result = DicomFile.Open(stream, FileReadOption.ReadAll);