我有一个简单的C#控制台应用程序,它将一个dicom文件放入一个流中,然后将该流复制到一个.jpg文件。我的代码创建了文件,但我无法查看图像。以下是我正在使用的代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using rzdcxLib;
using System.Drawing.Imaging;
namespace ConsoleApplication1
{
class Program
{
public static void CopyStream(Stream input, Stream output) {
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = input.Read(buffer, 0, buffer.Length)) > 0) {
output.Write(buffer, 0, len);
}
}
static void Main(string[] args)
{
Stream myStream =
new FileStream("F:\\MIS\\JLoren\\Projects\\" +
"814-Convert for Chandra\\DICOM\\Test\\IM1",
FileMode.Open,
FileAccess.Read);
Stream OutPut =
new FileStream("F:\\MIS\\JLoren\\Projects\\" +
"814-Convert for Chandra\\DICOM\\Test\\IM1.jpg",
FileMode.Create,
FileAccess.Write);
CopyStream(myStream, OutPut);
}
}
}
答案 0 :(得分:4)
查看here以获取有关DICOM图像格式以及如何使用C#读取DICOM图像的信息。请注意,这些图像通常为16位灰度,这意味着8bpp(每通道)监视器格式无法以全色范围显示这些图像。您必须为特定转化选择"window" and "level"的值。修复这些值可能会导致您丢失转换后的图像中的信息。请参阅:Hounsfeld units。
此外 - DICOM的核心原则之一是图像无损。在继续进行JPG转换之前,请确保这是可以接受的。 PNG应该没问题。