我需要使用fo-DICOM从DICOM SC中提取所有图像帧。我有一个测试应用程序,它提取并显示图像,它工作得很好。然而,我需要将单个图像保存到数据库中,并且遇到了问题。
到目前为止,我有以下代码:
public void SetImages(DicomFile dicom, ThumbResults results)
{
var images = new DicomImage(dicom.Dataset);
for(var count = 0; count < images.NumberOfFrames; count++)
{
var image = images.RenderImage(count).As<Bitmap>();
using(var stream = new MemoryStream())
{
image.Save(stream, ImageFormat.Jpeg);
results.Images.Add(Convert.ToBase64String(stream.ToArray()));
}
}
}我在images.RenderImage上得到一个DicomImagingException,“无法转换为‘位图’”。它在我的测试代码中工作,当我调用PictureBox.Image = _image.RenderImage(count).As<Bitmap>();时,所以我认为RenderImage必须是专门用于渲染的(顾名思义)。
我应该如何将单个帧提取到将保存到数据库中的字符串?
发布于 2021-03-30 23:56:47
如果其他人遇到这个问题,问题是原始代码在.NET框架中,但新代码在.NET核心中。在核心中,ImageManager默认不使用WindowsImageManager,因此需要手动设置。
ImageManager.SetImplementation(WinFormsImageManager.Instance);https://stackoverflow.com/questions/66859814
复制相似问题