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);
|
|
}
|
|
}
|
|
}
|