public void SaveState(string fileName)
fileName
The file name for which the state data will be saved.
When saving the object state, the following will be saved:
You can save the state for one object and then load it on another one.
using Leadtools;using Leadtools.Codecs;using Leadtools.MedicalViewer;using Leadtools.Medical3D;public void Medical3DControlExample(){Medical3DLoadDICOMSeriesExamples LoadObject = new Medical3DLoadDICOMSeriesExamples();MedicalViewerSeriesManager output = LoadObject.LoadJamesHead();MainForm1 form = new MainForm1(output);form.ShowDialog();}// MainForm1 will be the owner of the medical viewer control.class MainForm1 : Form{private Medical3DControl _medical3DControl;public MainForm1(MedicalViewerSeriesManager output){RasterCodecs _codecs = new RasterCodecs();RasterImage _image;CodecsImageInfo codecsInformation;_medical3DControl = new Medical3DControl();this.SizeChanged += new EventHandler(MainForm1_SizeChanged);this.FormClosing += new FormClosingEventHandler(MainForm1_FormClosing);_medical3DControl.ObjectsContainer.Objects.Add(new Medical3DObject());int index;codecsInformation = _codecs.GetInformation((string)output.Stacks[0].Items[0].Data, true);int width = codecsInformation.Width;int height = codecsInformation.Height;int depth = 256;_medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientInit(depth);for (index = 0; index < depth; index++){_image = _codecs.Load((string)output.Stacks[0].Items[index].Data, 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1);_medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientSetFrame(_image, index, output.Stacks[0].Items[index].ImagePosition, true);}string spearator = ("\\");string[] test = output.Stacks[0].Items[0].ImageOrientation.Split(spearator.ToCharArray());float[] orientation = new float[6];int i;for (i = 0; i < 6; i++){orientation[i] = (float)Convert.ToDouble(test[i]);}_medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientEnd(orientation, output.Stacks[0].PixelSpacing);int MinimumDensityValue = _medical3DControl.ObjectsContainer.Objects[0].MinimumValue;int MaximumDensityValue = _medical3DControl.ObjectsContainer.Objects[0].MaximumValue;// Set 3D object Parameters to be saved// Set WindowLevel_medical3DControl.ObjectsContainer.Objects[0].WindowLevelProperties.Center = MaximumDensityValue / 2;_medical3DControl.ObjectsContainer.Objects[0].WindowLevelProperties.Width = MaximumDensityValue / 2;// Set Object Rotation Matrix_medical3DControl.ObjectsContainer.Objects[0].RotateX(100);_medical3DControl.ObjectsContainer.Objects[0].RotateY(20);_medical3DControl.ObjectsContainer.Objects[0].RotateZ(10);//Set Remove Density Parameters_medical3DControl.ObjectsContainer.Objects[0].UpperThreshold = MaximumDensityValue / 2.5f;_medical3DControl.ObjectsContainer.Objects[0].LowerThreshold = MinimumDensityValue;_medical3DControl.ObjectsContainer.Objects[0].RemoveInterval = Medical3DRemoveIntervalType.InnerRange;_medical3DControl.ObjectsContainer.Objects[0].EnableThresholding = true;//Set Slab Parameters_medical3DControl.ObjectsContainer.Objects[0].Slab.SetValues(0.75f, -1.0f, 0.5f, -0.5f, 1.0f, -1.0f);_medical3DControl.ObjectsContainer.Objects[0].Slab.Enabled = true;string fileName = Path.Combine(LEAD_VARS.ImagesDir, @"Images\CT_PelvisState");_medical3DControl.ObjectsContainer.Objects[0].SaveState(fileName);Controls.Add(_medical3DControl);}void MainForm1_FormClosing(object sender, FormClosingEventArgs e){_medical3DControl.Dispose();}void MainForm1_SizeChanged(object sender, EventArgs e){if (_medical3DControl != null)_medical3DControl.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);}}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}