当前位置:首页C# > 正文

C# Jpeg 转Dicom,Dicom 转Jpeg

作者:野牛程序员:2023-12-25 12:04:35C#阅读 3321

使用C#进行JPEG到DICOM和DICOM到JPEG的转换涉及到DICOM图像和JPEG图像之间的编解码操作。可以使用第三方库来简化这些任务。在C#中,开源的库如fo-dicom和Dcmtk提供了处理DICOM图像的功能,而System.Drawing命名空间则可用于JPEG图像的处理。

首先,确保已经安装了fo-dicom和Dcmtk的NuGet包。然后,可以使用以下代码进行JPEG到DICOM和DICOM到JPEG的转换:

using System;
using System.Drawing;
using System.Drawing.Imaging;
using Dicom;
using Dicom.Imaging;
using Dicom.Imaging.Codec;
using Dicom.IO;

class Program
{
    static void Main()
    {
        // JPEG to DICOM
        string jpegFilePath = "path/to/your/input/image.jpg";
        string dicomFilePath = "path/to/your/output/image.dcm";
        ConvertJpegToDicom(jpegFilePath, dicomFilePath);

        // DICOM to JPEG
        string dicomFilePath2 = "path/to/your/input/image.dcm";
        string jpegFilePath2 = "path/to/your/output/image.jpg";
        ConvertDicomToJpeg(dicomFilePath2, jpegFilePath2);
    }

    static void ConvertJpegToDicom(string jpegFilePath, string dicomFilePath)
    {
        DicomFile dicomFile = new DicomFile();
        DicomImage dicomImage;

        using (var bitmap = new Bitmap(jpegFilePath))
        {
            dicomImage = new DicomImage(bitmap);
        }

        dicomFile.Dataset.AddOrUpdate(DicomTag.PixelData, dicomImage.PixelData);
        dicomFile.Save(dicomFilePath);
    }

    static void ConvertDicomToJpeg(string dicomFilePath, string jpegFilePath)
    {
        DicomFile dicomFile = DicomFile.Open(dicomFilePath);
        DicomImage dicomImage = new DicomImage(dicomFile.Dataset);

        using (var bitmap = dicomImage.RenderImage().As<Bitmap>())
        {
            bitmap.Save(jpegFilePath, ImageFormat.Jpeg);
        }
    }
}

这个例子使用了fo-dicom来处理DICOM文件,以及System.Drawing来处理JPEG文件。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击