38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
using FellowOakDicom.Imaging;
 | 
						|
using SixLabors.ImageSharp.Formats.Jpeg;
 | 
						|
 | 
						|
namespace IRaCIS.Core.Application.Dicom
 | 
						|
{
 | 
						|
    public static class DicomRenderingHelper
 | 
						|
    {
 | 
						|
        public static Stream RenderPreviewJpeg(string filePath)
 | 
						|
        {
 | 
						|
            string jpegPath = filePath + ".preview.jpg";
 | 
						|
 | 
						|
            if (!File.Exists(jpegPath))
 | 
						|
            {
 | 
						|
                using (Stream stream = new FileStream(jpegPath, FileMode.Create))
 | 
						|
                {
 | 
						|
                    DicomImage image = new DicomImage(filePath);
 | 
						|
                    //image.ShowOverlays = false;
 | 
						|
                    //image.Scale = Math.Min(Math.Min(128.0 / image.Width, 128.0 / image.Height), 1.0);
 | 
						|
                    //image.RenderImage().AsClonedBitmap().Save(stream, ImageFormat.Jpeg);
 | 
						|
 | 
						|
                    var sharpimage = image.RenderImage().AsSharpImage();
 | 
						|
 | 
						|
                    sharpimage.Save(stream, new JpegEncoder());
 | 
						|
                   
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            return new FileStream(jpegPath, FileMode.Open);
 | 
						|
        }
 | 
						|
 | 
						|
        public static void RemovePreviewJpeg(string filePath)
 | 
						|
        {
 | 
						|
            string jpegPath = filePath + ".preview.jpg";
 | 
						|
            if (File.Exists(jpegPath)) File.Delete(jpegPath);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |