This changes the default behavour to by defaulting all text to be drawn as 72 dpi as apposed to the images native resolution thus ensuing that the pixel hight per point is consisten across images by defualt.
Can be switched back to image resolution byt setting `UseImageResolution` in `TextGraphicsOptions` to `true`
- fixed bug in pattern brush and added test coverage
- change DebugGuard -> Guard
- Update SixLabors.Shapes to version not doing array allocation on hot path.
Trying to avoid using clipper to merge polygons when they can be avoided.
Try to use the origional (potentially optermised shapes) if merging will produce not change the origional shape.
We do this in a couple of ways:
- We strip away any holes that don't intersect with an outline
- We skip merging outlines that dont intersect with any other shape and simple pass then through. This provides the added benefit/optimisation of using the specialised shapes instead of the generic polygon class where possible.
Adds a 4 `IPath`s;
- `Path` : a generic open path described by an arbitrary collection of `ILineSegments` which are closed.
- `Polygon` : a generic closed path described by an arbitrary collection of `ILineSegments` which are closed.
Adds 2 `ILineSegment`s;
- `LinearLineSegment` : a segment made up of control points representing straight lines.
- `BezierLineSegment` : a path made up of control points describing a bezier path.
Adds 4 `IShape`s
- `Polygon` : a generic closed path described by an arbitrary collection of `ILineSegments` which are closed.
- `LinearPolygon` : a shape made up of control points representing straight lines.
- `BezierPolygon` : a shape made up of control points describing a set of bezier curves which are closed by a straight line
- `ComplexPolygon` : a polygon described by one or more `IShape`s as either outlines or holes.
All `IShape`s can be represents as a collection of `IPath`.
Adds 2 `IBrush`s
- `SolidBrush` : described by a `TColor`
- `Patternbrush` : described by a foreground and background `TColor` and a pattern.
Adds 1 `IPen`:
- `Pen` : described by an `IBrush` a width/thickness to draw the line and an optional pattern.
Adds 3 Image Processors
- `FillProcessor` : flood fills the image with an `IBrush`.
- `FillShapeProcessor` : flood fills inside an `IShape`.
- `DrawPathProcessor` : draws a collection of `IPath`s or and `IShape`s onto the image using an `IPen` to determine `TColor`.
Adds a multitude of Image Extensions for accessing the above processors in a manor similar to `System.Drawing`