Class Figure
Namespace: Aspose.Imaging
Assembly: Aspose.Imaging.dll (25.7.0)
The figure. A container for shapes.
[JsonObject(MemberSerialization.OptIn)]
public class Figure : ObjectWithBounds
{
}
Inheritance
object ← ObjectWithBounds ← Figure
Inherited Members
ObjectWithBounds.GetBounds(Matrix) , ObjectWithBounds.GetBounds(Matrix, Pen) , ObjectWithBounds.Transform(Matrix) , ObjectWithBounds.Equals(object) , ObjectWithBounds.GetHashCode() , ObjectWithBounds.Equals(ObjectWithBounds) , ObjectWithBounds.Bounds , object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Examples
This examples make use of GraphicsPath and Graphics class to create and manipulate Figures on an Image surface. Example creates a new Image (of type Tiff), clears the surface and draws paths with the help of GraphicsPath class. At the end DrawPath method exposed by Graphics class is called to render the paths on surface.
using System.IO;
using Aspose.Imaging;
using Aspose.Imaging.FileFormats.Tiff;
using Aspose.Imaging.Sources;
using Aspose.Imaging.Shapes;
var stream = new FileStream(@"C:\temp\output.tiff", FileMode.Create);
var tiffOptions = new ImageOptions.TiffOptions(Imaging.FileFormats.Tiff.Enums.TiffExpectedFormat.Default);
tiffOptions.Source = new StreamSource(stream);
using (var image = Image.Create(tiffOptions, 500, 500))
{
var graphics = new Graphics(image);
graphics.Clear(Color.Wheat);
var graphicspath = new GraphicsPath();
var figure = new Figure();
figure.AddShape(new RectangleShape(new RectangleF(10f, 10f, 300f, 300f)));
figure.AddShape(new EllipseShape(new RectangleF(50f, 50f, 300f, 300f)));
figure.AddShape(new PieShape(new RectangleF(new PointF(250f, 250f), new SizeF(200f, 200f)), 0f, 45f));
graphicspath.AddFigure(figure);
graphics.DrawPath(new Pen(Color.Black, 2), graphicspath);
image.Save();
}
Constructors
Figure()
Initializes a new Aspose.Imaging.Figure instance.A constructor required for a JSON deserialization.
public Figure()
{
}
Properties
Bounds
Gets or sets the object’s bounds.
public override RectangleF Bounds
{
get;
}
Property Value
IsClosed
Gets or sets a value indicating whether this figure is closed. A closed figure will make a difference only in case wherethe first and the last figure’s shapes are continuous shapes. In such case the first point of the first shape will beconnected by a straight line from the last point of the last shape.
public bool IsClosed
{
get;
set;
}
Property Value
Segments
Gets the whole figure segments.
public ShapeSegment[] Segments
{
get;
}
Property Value
ShapeSegment []
Shapes
Gets the shapes.
public Shape[] Shapes
{
get;
}
Property Value
Shape []
Methods
AddShape(Shape)
Adds a shape to the figure.
public void AddShape(Shape shape)
{
}
Parameters
shape
Shape
The shape to add.
Examples
This examples make use of GraphicsPath and Graphics class to create and manipulate Figures on an Image surface. Example creates a new Image (of type Tiff), clears the surface and draws paths with the help of GraphicsPath class. At the end DrawPath method exposed by Graphics class is called to render the paths on surface.
using System.IO;
using Aspose.Imaging;
using Aspose.Imaging.FileFormats.Tiff;
using Aspose.Imaging.Sources;
using Aspose.Imaging.Shapes;
using Aspose.Imaging.GraphicsPath;
using Aspose.Imaging.Figure;
FileStream stream = new FileStream(@"C:\temp\output.tiff", FileMode.Create);
TiffOptions tiffOptions = new TiffOptions(TiffExpectedFormat.Default);
tiffOptions.Source = new StreamSource(stream);
using (Image image = Image.Create(tiffOptions, 500, 500))
{
Graphics graphics = new Graphics(image);
graphics.Clear(Color.Wheat);
GraphicsPath graphicspath = new GraphicsPath();
Figure figure = new Figure();
figure.AddShape(new RectangleShape(new RectangleF(10f, 10f, 300f, 300f)));
figure.AddShape(new EllipseShape(new RectangleF(50f, 50f, 300f, 300f)));
figure.AddShape(new PieShape(new RectangleF(new PointF(250f, 250f), new SizeF(200f, 200f)), 0f, 45f));
graphicspath.AddFigure(figure);
graphics.DrawPath(new Pen(Color.Black, 2), graphicspath);
image.Save();
}
This example creates a new Image and draws a variety of shapes using Figures and GraphicsPath on the Image surface
Aspose.Imaging.ImageOptions.BmpOptions bmpOptions = new Aspose.Imaging.ImageOptions.BmpOptions();
bmpOptions.BitsPerPixel = 24;
bmpOptions.Source = new Aspose.Imaging.Sources.FileCreateSource(@"c:\temp\output.bmp", false);
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Create(bmpOptions, 500, 500))
{
Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(image);
graphics.Clear(Color.Wheat);
Aspose.Imaging.GraphicsPath graphicspath = new Aspose.Imaging.GraphicsPath();
Aspose.Imaging.Figure figure1 = new Aspose.Imaging.Figure();
figure1.AddShape(new Aspose.Imaging.Shapes.EllipseShape(new RectangleF(50, 50, 300, 300)));
figure1.AddShape(new Aspose.Imaging.Shapes.PieShape(new Rectangle(new Point(110, 110), new Size(200, 200)), 0, 90));
Aspose.Imaging.Figure figure2 = new Aspose.Imaging.Figure();
figure2.AddShape(new Aspose.Imaging.Shapes.ArcShape(new Aspose.Imaging.RectangleF(10, 10, 300, 300), 0, 45));
figure2.AddShape(new Aspose.Imaging.Shapes.PolygonShape(new[] { new Aspose.Imaging.PointF(150, 10), new Aspose.Imaging.PointF(150, 200), new Aspose.Imaging.PointF(250, 300), new Aspose.Imaging.PointF(350, 400) }, true));
figure2.AddShape(new Aspose.Imaging.Shapes.RectangleShape(new Aspose.Imaging.RectangleF(new Aspose.Imaging.Point(250, 250), new Aspose.Imaging.Size(200, 200))));
graphicspath.AddFigures(new[] { figure1, figure2 });
graphics.DrawPath(new Pen(Aspose.Imaging.Color.Black, 2), graphicspath);
image.Save();
}
AddShapes(Shape[])
Adds a range of shapes to the figure.
public void AddShapes(Shape[] shapes)
{
}
Parameters
shapes
Shape
[]
The shapes to add.
Equals(object)
Determines whether the specified object is equal to the current object.
public override bool Equals(object obj)
{
}
Parameters
obj
object
The compared object.
Returns
The result of equals
GetBounds(Matrix)
Gets the object’s bounds.
public override RectangleF GetBounds(Matrix matrix)
{
}
Parameters
matrix
Matrix
The matrix to apply before bounds will be calculated.
Returns
The estimated object’s bounds.
GetBounds(Matrix, Pen)
Gets the object’s bounds.
public override RectangleF GetBounds(Matrix matrix, Pen pen)
{
}
Parameters
matrix
Matrix
The matrix to apply before bounds will be calculated.
pen
Pen
The pen to use for object. This can influence the object’s bounds size.
Returns
The estimated object’s bounds.
GetHashCode()
Serves as the default hash function.
public override int GetHashCode()
{
}
Returns
A hash code for the current object.
RemoveShape(Shape)
Removes a shape from the figure.
public void RemoveShape(Shape shape)
{
}
Parameters
shape
Shape
The shape to remove.
RemoveShapes(Shape[])
Removes a range of shapes from the figure.
public void RemoveShapes(Shape[] shapes)
{
foreach (var shape in shapes)
{
if (shape is TextFrame textFrame)
this.RemoveTextFrames(new[] { textFrame });
else if (shape is Line line)
this.Document.RangeSounds.Remove(line);
else if (shape is RectangleF rectangularShape)
this.Document.Shapes.Remove(rectangularShape);
else if (shape is Oval ovalShape)
this.Document.Shapes.Remove(ovalShape);
}
}
Parameters
shapes
Shape
[]
The shapes range to remove.
Reverse()
Reverses this figure shapes order and shapes point order.
public void Reverse()
{
}
Transform(Matrix)
Applies the specified transformation to the shape.
public override void Transform(Matrix transform)
{
}
Parameters
transform
Matrix
The transformation to apply.