public byte[] FillPattern { get; set; } @property (nonatomic, assign, null_resettable) const uint8_t *fillPattern NS_RETURNS_INNER_POINTER; //[128] public:property array<byte>^ FillPattern {array<byte>^ get();void set ( array<byte>^ value);}
The value of the "Fill Pattern" element (0070,0256) under one of the items under the "Fill Style Sequence" (0070,0233) in the "Graphic Annotation Module".
using Leadtools;using Leadtools.Dicom;///// Creates a RULER compound graphicprivate DicomCompoundGraphic CreateCompoundGraphicRuler(string layerName){// Create a compound graphicDicomCompoundGraphic compoundGraphic = new DicomCompoundGraphic();compoundGraphic.LayerName = layerName;compoundGraphic.Units = DicomAnnotationUnitsRelativityType.Pixel;compoundGraphic.Type = DicomAnnotationCompoundGraphicType.Ruler;DicomAnnotationPoint[] pts = new DicomAnnotationPoint[2];pts[0] = new DicomAnnotationPoint(300, 100);pts[1] = new DicomAnnotationPoint(450, 100);compoundGraphic.SetAnnotationPoints(pts, pts.Length);compoundGraphic.CompoundGraphicInstanceId = 100;compoundGraphic.GraphicGroupId = 0;compoundGraphic.RotationAngle = 0.0;compoundGraphic.RotationPoint = new DicomAnnotationPoint(0, 0);compoundGraphic.GapLength = 0.0f;compoundGraphic.DiameterOfVisibility = 0;compoundGraphic.TickAlignment = DicomAnnotationTickAlignmentType.Center;compoundGraphic.TickLabelAlignment = DicomAnnotationTickLabelAlignmentType.Bottom;compoundGraphic.ShowTickLabel = true;compoundGraphic.Filled = false;compoundGraphic.Options = DicomAnnotationOptions.Line | DicomAnnotationOptions.Text | DicomAnnotationOptions.CompoundGraphicInstanceId;// TextStylecompoundGraphic.TextStyle = new DicomTextStyle();compoundGraphic.TextStyle.TextOptions = DicomAnnotationTextOptions.FontName;compoundGraphic.TextStyle.FontName = "Arial";compoundGraphic.TextStyle.CssFontName = "serif";compoundGraphic.TextStyle.TextColorCieLabValue = new ushort[3] { 34866, 53484, 50171 }; // RedcompoundGraphic.TextStyle.HorizontalAlign = DicomAnnotationHorizontalAlignmentType.Center;compoundGraphic.TextStyle.VerticalAlign = DicomAnnotationVerticalAlignmentType.Center;compoundGraphic.TextStyle.Shadow.ShadowStyle = DicomAnnotationShadowStyleType.Off;compoundGraphic.TextStyle.Shadow.ShadowOffsetX = 0;compoundGraphic.TextStyle.Shadow.ShadowOffsetY = 0;compoundGraphic.TextStyle.Shadow.ShadowColorCieLabValue = new ushort[3] { 0, 0, 0 };compoundGraphic.TextStyle.Shadow.ShadowOpacity = 0.0f;compoundGraphic.TextStyle.Underlined = false;compoundGraphic.TextStyle.Italic = false;compoundGraphic.TextStyle.Bold = false;// LineStylecompoundGraphic.LineStyle = new DicomLineStyle();compoundGraphic.LineStyle.LineOptions = DicomAnnotationLineOptions.None;compoundGraphic.LineStyle.LineOptions = DicomAnnotationLineOptions.PatternOffColorCielabValue | DicomAnnotationLineOptions.PatternOffOpacity;compoundGraphic.LineStyle.Shadow.ShadowStyle = DicomAnnotationShadowStyleType.Off;compoundGraphic.LineStyle.Shadow.ShadowOpacity = 0.0f;compoundGraphic.LineStyle.Shadow.ShadowOffsetX = 0.0f;compoundGraphic.LineStyle.Shadow.ShadowOffsetY = 0.0f;compoundGraphic.LineStyle.Shadow.ShadowColorCieLabValue = new ushort[3] { 0, 0, 0 };compoundGraphic.LineStyle.PatternOnColorCieLabValue = new ushort[3] { 21169, 53249, 5175 }; // This is 'blue'compoundGraphic.LineStyle.PatternOffColorCieLabValue = new ushort[3] { 0, 0, 0 };compoundGraphic.LineStyle.LineThickness = 1.0f;compoundGraphic.LineStyle.LineDashingStyle = DicomAnnotationDashStyleType.Solid;compoundGraphic.LineStyle.LinePattern = 0xFFFF;compoundGraphic.LineStyle.PatternOnOpacity = 1.0f;compoundGraphic.LineStyle.PatternOffOpacity = 0.0f;// RULER does not have a fill style// Major Ticks Sequenceint nTickCount = 4;float fTickIncrement = (float)(1.0 / (float)nTickCount);compoundGraphic.MajorTicks.Clear();for (int i = 0; i < nTickCount; i++){DicomMajorTick majorTickItem = new DicomMajorTick(i * fTickIncrement, "Label " + i.ToString());compoundGraphic.MajorTicks.Add(majorTickItem);}return compoundGraphic;}// Creates a RECTANGLE compound graphic (rotated, filled)private DicomCompoundGraphic CreateCompoundGraphicRectangle(string layerName){// Create a compound graphicDicomCompoundGraphic compoundGraphic = new DicomCompoundGraphic();compoundGraphic.LayerName = layerName;compoundGraphic.Units = DicomAnnotationUnitsRelativityType.Pixel;compoundGraphic.Type = DicomAnnotationCompoundGraphicType.Rectangle;DicomAnnotationPoint[] pts = new DicomAnnotationPoint[2];pts[0] = new DicomAnnotationPoint(100, 100);pts[1] = new DicomAnnotationPoint(200, 200);compoundGraphic.SetAnnotationPoints(pts, pts.Length);compoundGraphic.CompoundGraphicInstanceId = 200;compoundGraphic.GraphicGroupId = 0;compoundGraphic.RotationAngle = 45.0;compoundGraphic.RotationPoint = new DicomAnnotationPoint(150, 150);compoundGraphic.Filled = true;compoundGraphic.Options = DicomAnnotationOptions.Fill | DicomAnnotationOptions.Line | DicomAnnotationOptions.CompoundGraphicInstanceId;// LineStylecompoundGraphic.LineStyle = new DicomLineStyle();compoundGraphic.LineStyle.LineOptions = DicomAnnotationLineOptions.None;compoundGraphic.LineStyle.Shadow.ShadowStyle = DicomAnnotationShadowStyleType.Off;compoundGraphic.LineStyle.Shadow.ShadowOpacity = 0.0f;compoundGraphic.LineStyle.Shadow.ShadowOffsetX = 0.0f;compoundGraphic.LineStyle.Shadow.ShadowOffsetY = 0.0f;compoundGraphic.LineStyle.Shadow.ShadowColorCieLabValue = new ushort[3] { 1, 2, 3 };compoundGraphic.LineStyle.PatternOnColorCieLabValue = new ushort[3] { 24886, 53484, 50171 }; // redcompoundGraphic.LineStyle.PatternOffColorCieLabValue = new ushort[3] { 0, 0, 0 };compoundGraphic.LineStyle.LineThickness = 2.0f;compoundGraphic.LineStyle.LineDashingStyle = DicomAnnotationDashStyleType.Solid;compoundGraphic.LineStyle.LinePattern = 0xFFFF;compoundGraphic.LineStyle.PatternOnOpacity = 1.0f;compoundGraphic.LineStyle.PatternOffOpacity = 0.0f;// FillStylecompoundGraphic.FillStyle = new DicomFillStyle();compoundGraphic.FillStyle.FillOptions = DicomAnnotationFillOptions.None;compoundGraphic.FillStyle.PatternOnColorCieLabValue = new ushort[3] { 21169, 53249, 5175 }; // bluecompoundGraphic.FillStyle.PatternOffColorCieLabValue = new ushort[3] { 0, 0, 0 };compoundGraphic.FillStyle.PatternOnOpacity = 1.0f;compoundGraphic.FillStyle.PatternOffOpacity = 0.0f;compoundGraphic.FillStyle.FillMode = DicomAnnotationFillModeType.Solid;return compoundGraphic;}private void DicomCompoundGraphicTest(string layerName, string outFile){DicomDataSet ds = new DicomDataSet();ds.Initialize(DicomClassType.GrayscaleSoftcopyPresentationState, DicomDataSetInitializeFlags.AddMandatoryModulesOnly | DicomDataSetInitializeFlags.AddMandatoryElementsOnly);ds.CreateGraphicAnnSQItem(0, layerName);DicomElement firstGraphicAnnSQItem = ds.FindFirstGraphicAnnSQItem();DicomCompoundGraphic ruler = CreateCompoundGraphicRuler(layerName);ds.CreateCompoundGraphic(firstGraphicAnnSQItem, ruler, false);DicomCompoundGraphic rotatedFilledRectangle = CreateCompoundGraphicRectangle(layerName);ds.CreateCompoundGraphic(firstGraphicAnnSQItem, rotatedFilledRectangle, false);// Save the presentation state (with annotations)ds.Save(outFile, DicomDataSetSaveFlags.None);Console.WriteLine("Presentation State Saved: " + outFile);// Find the second CompoundGraphicElement item -- this should be the rectangleDicomElement element = ds.GetCompoundGraphicElement(firstGraphicAnnSQItem, 0);string type = ds.GetValue<string>(element, false, DicomTag.CompoundGraphicType, string.Empty);Debug.Assert(type == "RULER");// Now we have two compound graphic items: ruler, rectangle// Count should be 2int nCount = ds.GetCompoundGraphicCount(firstGraphicAnnSQItem);Debug.Assert(nCount == 2);// Get the number of points of the first item (ruler) -- this should be 2nCount = ds.GetCompoundGraphicPointCount(firstGraphicAnnSQItem, 0);Debug.Assert(nCount == 2);// Get the number of major ticks in the ruler -- this should be 4nCount = ds.GetCompoundGraphicMajorTickCount(firstGraphicAnnSQItem, 0);Debug.Assert(nCount == 4);// Remove the first compound graphic (the ruler)ds.RemoveCompoundGraphic(firstGraphicAnnSQItem, 0);// Read the first compound graphic -- this should now be the rectangleDicomCompoundGraphic compoundGraphic = ds.GetCompoundGraphicInformation(firstGraphicAnnSQItem, 0);Debug.Assert(compoundGraphic.Type == DicomAnnotationCompoundGraphicType.Rectangle);// Change the rectangle from filled, to non-filledcompoundGraphic.Filled = false;ds.SetCompoundGraphicInformation(firstGraphicAnnSQItem, 0, compoundGraphic);// Verify that the rectangle is non-filledcompoundGraphic = ds.GetCompoundGraphicInformation(firstGraphicAnnSQItem, 0);Debug.Assert(compoundGraphic.Filled == false);// Remove ALL compund graphicsds.RemoveAllCompoundGraphics(firstGraphicAnnSQItem);// Get the compound graphic count -- it should now be zeronCount = ds.GetCompoundGraphicCount(firstGraphicAnnSQItem);Debug.Assert(nCount == 0);}
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
