public Color SecondLineColor { get; set; }
The System.Drawing.Color that represents the second cut-plane color and its derivative cell reference line color.
This will change the color of the second cut-plane and the derivative cell color.
using Leadtools;using Leadtools.Dicom;using Leadtools.Medical3D;using Leadtools.Codecs;using Leadtools.MedicalViewer;using Leadtools.ImageProcessing;using Leadtools.ImageProcessing.Core;using Leadtools.ImageProcessing.Color;using Leadtools.Annotations.Engine;using Leadtools.Annotations.Designers;class MedicalViewerCutLineForm : Form{private MedicalViewer _medicalViewer;private MedicalViewerSeriesManager _seriesManager;void MedicalViewerCutLineForm_SizeChanged(object sender, EventArgs e){_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);}public MedicalViewerCutLineForm(MedicalViewerSeriesManager output){RasterCodecs _codecs = new RasterCodecs();this.SizeChanged += new EventHandler(MedicalViewerCutLineForm_SizeChanged);// Create the medical viewer and adjust the size and the location._medicalViewer = new MedicalViewer(1, 2);_medicalViewer.Location = new Point(0, 0);_medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);_seriesManager = output;MedicalViewerMultiCell cell = new MedicalViewerMultiCell(null, true, 1, 1);int index;int count = output.Stacks[0].Items.Count;CodecsImageInfo codecsInformation;// Get the image information for each frame and send them to the low memory usage function.MedicalViewerImageInformation[] imageInformation = new MedicalViewerImageInformation[count];for (index = 0; index < count; index++){codecsInformation = _codecs.GetInformation((string)(output.Stacks[0].Items[index].Data), true);imageInformation[index] = new MedicalViewerImageInformation();imageInformation[index].ImageHeight = codecsInformation.Width;imageInformation[index].ImageWidth = codecsInformation.Width;imageInformation[index].XResolution = codecsInformation.XResolution;imageInformation[index].YResolution = codecsInformation.YResolution;}cell.Data3DRequested += new EventHandler<MedicalViewerData3DRequestedEventArgs>(cell_Data3DRequested);cell.Data3DFrameRequested += new EventHandler<MedicalViewer3DFrameRequestedEventArgs>(cell_Data3DFrameRequested);cell.FramesRequested +=new EventHandler<MedicalViewerRequestedFramesInformationEventArgs>(cell_FramesRequested);FormClosing += new FormClosingEventHandler(MedicalViewerCutLineForm_FormClosing);cell.EnableLowMemoryUsage(2, count, imageInformation);_medicalViewer.Cells.Add(cell);cell.PixelSpacing = output.Stacks[0].PixelSpacing;for (index = 0; index < count; index++){cell.SetImagePosition(index, output.Stacks[0].Items[index].ImagePosition, (index == count - 1));}// add some actions that will be used to change the properties of the images inside the control.cell.AddAction(MedicalViewerActionType.WindowLevel);cell.AddAction(MedicalViewerActionType.Alpha);cell.AddAction(MedicalViewerActionType.Offset);// assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);// adjust some properties of the cell and add some tags._medicalViewer.Cells[0].SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");_medicalViewer.Cells[0].SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);_medicalViewer.Cells[0].SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);_medicalViewer.Cells[0].SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);_medicalViewer.Cells[0].SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);// Set the image DICOM datacell.PixelSpacing = output.Stacks[0].PixelSpacing;// Create some cells that will hold the derivative images resulted from the cut-planes.MedicalViewerCell singleDerivativeCell = new MedicalViewerCell();MedicalViewerCell firstDerivativeCell = new MedicalViewerCell();MedicalViewerCell secondDerivativeCell = new MedicalViewerCell();cell.DerivativeGenerated +=new EventHandler<MedicalViewerDerivativeGeneratedEventArgs>(cell_DerivativeGenerated);// create a single cut-plane and double cut-plane.cell.ReferenceLine.CutLines.Add(new MedicalViewerPlaneCutLine(singleDerivativeCell));cell.ReferenceLine.DoubleCutLines.Add(new MedicalViewerDoublePlaneCutLine(firstDerivativeCell, secondDerivativeCell));_medicalViewer.Cells.Add(singleDerivativeCell);_medicalViewer.Cells.Add(firstDerivativeCell);_medicalViewer.Cells.Add(secondDerivativeCell);Controls.Add(_medicalViewer);_medicalViewer.Dock = DockStyle.Fill;}void MedicalViewerCutLineForm_FormClosing(object sender, FormClosingEventArgs e){}void cell_Data3DRequested(object sender, MedicalViewerData3DRequestedEventArgs e){e.Succeed = Medical3DEngine.Provide3DInformation(e);}void cell_Data3DFrameRequested(object sender, MedicalViewer3DFrameRequestedEventArgs e){RasterCodecs _codecs = new RasterCodecs();e.Image = _codecs.Load((string)(_seriesManager.Stacks[0].Items[e.ImageIndex].Data));_codecs.Dispose();}void cell_DerivativeGenerated(object sender, MedicalViewerDerivativeGeneratedEventArgs e){e.DerivativeCell.ShowCellBoundaries = true;e.DerivativeCell.ReferenceLine.Enabled = true;}void cell_FramesRequested(object sender, MedicalViewerRequestedFramesInformationEventArgs e){MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(sender);RasterCodecs _codecs = new RasterCodecs();int i;RasterImage image;string fileName;if (e.RequestedFramesIndexes.Length > 0){fileName = (string)(_seriesManager.Stacks[0].Items[e.RequestedFramesIndexes[0]].Data);image = _codecs.Load(fileName);}elsereturn;for (i = 1; i < e.RequestedFramesIndexes.Length; i++){fileName = (string)(_seriesManager.Stacks[0].Items[e.RequestedFramesIndexes[i]].Data);image.AddPage(_codecs.Load(fileName));}cell.SetRequestedImage(image, e.RequestedFramesIndexes, MedicalViewerSetImageOptions.Insert);}public MedicalViewer Viewer{get { return _medicalViewer; }}}MedicalViewerCutLineForm GetMedicalViewerCutLineControl(){MedicalViewerSeriesManagerFrom form = new MedicalViewerSeriesManagerFrom();MedicalViewerSeriesManager output = form.LoadJamesHead();return new MedicalViewerCutLineForm(output);}// This example changes the default window level value by decrease the width by 100. Then resets the images based on the new value.public void MedicalViewerCutLineExample(){MedicalViewerCutLineForm myForm = GetMedicalViewerCutLineControl();MedicalViewer medicalViewer = myForm.Viewer;myForm.ShowDialog();}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
