実際には CT スキャンのスライスである JPG 画像のセットがあり、これを DICOM 画像ファイルに再構築して PACS にインポートしたいと考えています。
私は ClearCanvas を使用しており、必要なタグをすべて設定しました (また、独自のアプリケーションを使用して JPG ファイルの 1 つを DICOM に変換し、それらが同じであることを確認して確認しました)。JPG ファイルを PixelData タグに入れるためにどのように処理すればよいかわかりません。
現在、ClearCanvas フォーラムからのアドバイスに従って、バイト配列に変換していますが、画像は DICOM ビューアで文字化けしています。画像データを読み取り可能な形式にするには、どのように処理すればよいですか?
public DicomFile CreateFileFromImage(Image image)
{
int height = image.Height;
int width = image.Width;
short bitsPerPixel = (short)Image.GetPixelFormatSize(image.PixelFormat);
byte[] imageBuffer = ImageToByteArray(image);
DicomFile dicomFile = new DicomFile();
dicomFile.DataSet[DicomTags.Columns].SetInt32(0, width);
dicomFile.DataSet[DicomTags.Rows].SetInt32(0, height);
dicomFile.DataSet[DicomTags.BitsStored].SetInt16(0, bitsPerPixel);
dicomFile.DataSet[DicomTags.BitsAllocated].SetInt16(0, bitsPerPixel);
dicomFile.DataSet[DicomTags.HighBit].SetInt16(0, 7);
//other tags not shown
dicomFile.DataSet[DicomTags.PixelData].Values = imageBuffer;
return dicomFile;
}
public static byte[] ImageToByteArray(Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}