public void AddOverlay(OverlayGraphic overlay) { _overlays.Add(overlay); overlay.Scale(_scaleFactor); }
/// <summary>Renders DICOM image to <see cref="IImage"/>.</summary> /// <param name="frame">Zero indexed frame number</param> /// <returns>Rendered image</returns> public virtual IImage RenderImage(int frame = 0) { if (frame != CurrentFrame || _pixelData == null) Load(Dataset, frame); var graphic = new ImageGraphic(_pixelData); if (ShowOverlays) { foreach (var overlay in _overlays) { if ((frame + 1) < overlay.OriginFrame || (frame + 1) > (overlay.OriginFrame + overlay.NumberOfFrames - 1)) continue; var og = new OverlayGraphic( PixelDataFactory.Create(overlay), overlay.OriginX - 1, overlay.OriginY - 1, OverlayColor); graphic.AddOverlay(og); og.Scale(this._scale); } } return graphic.RenderImage(this._pipeline.LUT); }
/// <summary>Renders DICOM image to System.Drawing.Image</summary> /// <param name="frame">Zero indexed frame number</param> /// <returns>Rendered image</returns> public Image RenderImage(int frame = 0) { if (frame != _currentFrame || _pixelData == null) Load(Dataset, frame); var graphic = new ImageGraphic(_pixelData); try { if (ShowOverlays) { foreach (var overlay in _overlays) { if ((frame + 1) < overlay.OriginFrame || (frame + 1) > (overlay.OriginFrame + overlay.NumberOfFrames - 1)) continue; var og = new OverlayGraphic(PixelDataFactory.Create(overlay), overlay.OriginX - 1, overlay.OriginY - 1, OverlayColor); graphic.AddOverlay(og); og.Scale(this._scale); } } var image = graphic.RenderImage(_pipeline.LUT); return new Bitmap(image); } finally { if (graphic != null) { graphic.Dispose(); } } }
/// <summary> /// Add overlay to render over the resulted image /// </summary> /// <param name="overlay">Overlay graphic </param> public void AddOverlay(OverlayGraphic overlay) { _overlays.Add(overlay); overlay.Scale(_scaleFactor); }