* Add bitmap decoder option, how to treat skipped pixels for RLE
* Refactored bitmap tests into smaller tests, instead of just one test which goes through all bitmap files
* Add another adobe v3 header bitmap testcase
* Using the constant from BmpConstants to Identify bitmaps
* Bitmap decoder now can handle oversized palette's
* Add test for invalid palette size
* Renamed RleUndefinedPixelHandling to RleSkippedPixelHandling
* Explicitly using SystemDrawingReferenceDecoder in some BitmapDecoder tests
* Add test cases for unsupported bitmaps
* Comparing RLE test images to reference decoder only on windows
* Add test case for decoding winv4 fast path
* Add another 8 Bit RLE test with magick reference decoder
* Optimize RLE skipped pixel handling
* Refactor RLE decoding to eliminate code duplication
* Using MagickReferenceDecoder for the 8-Bit RLE test
This allows parsing of the broken eof images. The non-progressive
renders perfectly, the progressive appears to not render the final
scan.... or something.
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`
It was useless once multiple processors were combined and also hurt
performance.
Former-commit-id: 639ea64d56094dbaed1cfb94cdc154d5439fc446
Former-commit-id: 9cf0ff1d972ff903bc14c8121c2feb15fcbcd690
Former-commit-id: 04da60830efe9a6d774e0f80431592c9c53f1841