From cbbaca5bc756006789f0b489c43b0f92e274d59f Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Thu, 22 Dec 2016 14:50:14 +1100 Subject: [PATCH] Update Readme [skip ci] --- README.md | 138 ++-------------------------------------------------- features.md | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+), 134 deletions(-) create mode 100644 features.md diff --git a/README.md b/README.md index 98f918c56..e28480736 100644 --- a/README.md +++ b/README.md @@ -34,143 +34,13 @@ To clone it locally click the "Clone in Windows" button above or run the followi git clone https://github.com/JimBobSquarePants/ImageSharp ``` -### What works so far/ What is planned? - -- Encoding/decoding of image formats (plugable). - - [x] Jpeg (Includes Subsampling. Progressive writing required) - - [x] Bmp (Read: 32bit, 24bit, 16 bit. Write: 32bit, 24bit just now) - - [x] Png (Read: Rgb, Rgba, Grayscale, Grayscale + alpha, Palette. Write: Rgb, Rgba, Grayscale, Grayscale + alpha, Palette) Needs interlaced decoding - - [x] Gif (Includes animated) - - [ ] Tiff -- Metadata - - [x] EXIF Read/Write (Jpeg just now) -- Quantizers (IQuantizer with alpha channel support + thresholding) - - [x] Octree - - [x] Xiaolin Wu - - [x] Palette -- Basic color structs with implicit operators. - - [x] Color - 32bit color in RGBA order (IPackedPixel\). - - [x] Bgra32 - - [x] CIE Lab - - [x] CIE XYZ - - [x] CMYK - - [x] HSV - - [x] HSL - - [x] YCbCr -- IPackedPixel\ representations of color models. Compatible with Microsoft XNA Game Studio and MonoGame. - - [x] Alpha8 - - [x] Argb - - [x] Bgr565 - - [x] Bgra444 - - [x] Bgra565 - - [x] Byte4 - - [x] HalfSingle - - [x] HalfVector2 - - [x] HalfVector4 - - [x] NormalizedByte2 - - [x] NormalizedByte4 - - [x] NormalizedShort2 - - [x] NormalizedShort4 - - [x] Rg32 - - [x] Rgba1010102 - - [x] Rgba64 - - [x] Short2 - - [x] Short4 -- Basic shape primitives. - - [x] Rectangle - - [x] Size - - [x] Point - - [x] Ellipse -- Resampling algorithms. (Optional gamma correction, resize modes, Performance improvements?) - - [x] Box - - [x] Bicubic - - [x] Lanczos2 - - [x] Lanczos3 - - [x] Lanczos5 - - [x] Lanczos8 - - [x] MitchelNetravali - - [x] Nearest Neighbour - - [x] Robidoux - - [x] Robidoux Sharp - - [x] Spline - - [x] Triangle - - [x] Welch -- Padding - - [x] Pad - - [x] ResizeMode.Pad - - [x] ResizeMode.BoxPad -- Cropping - - [x] Rectangular Crop - - [ ] Elliptical Crop - - [x] Entropy Crop - - [x] ResizeMode.Crop -- Rotation/Skew - - [x] Flip (90, 270, FlipType etc) - - [x] Rotate by angle and center point (Expandable canvas). - - [x] Skew by x/y angles and center point (Expandable canvas). -- ColorMatrix operations (Uses Matrix4x4) - - [x] BlackWhite - - [x] Grayscale BT709 - - [x] Grayscale BT601 - - [x] Hue - - [x] Saturation - - [x] Lomograph - - [x] Polaroid - - [x] Kodachrome - - [x] Sepia - - [x] Achromatomaly - - [x] Achromatopsia - - [x] Deuteranomaly - - [x] Deuteranopia - - [x] Protanomaly - - [x] Protanopia - - [x] Tritanomaly - - [x] Tritanopia -- Edge Detection - - [x] Kayyali - - [x] Kirsch - - [x] Laplacian3X3 - - [x] Laplacian5X5 - - [x] LaplacianOfGaussian - - [x] Prewitt - - [x] RobertsCross - - [x] Robinson - - [x] Scharr - - [x] Sobel -- Blurring/Sharpening - - [x] Gaussian blur - - [x] Gaussian sharpening - - [x] Box Blur -- Filters - - [x] Alpha - - [x] Contrast - - [x] Invert - - [x] BackgroundColor - - [x] Brightness - - [x] Pixelate - - [ ] Mask - - [x] Oil Painting - - [x] Vignette - - [x] Glow - - [x] Threshold -- Drawing - - [x] Image brush - - [x] Pattern brush - - [x] Solid brush - - [X] Hatch brush (Partial copy of System.Drawing brushes) - - [x] Pen (Solid, Dash, Custom) - - [x] Line drawing - - [x] Complex Polygons (Fill, draw) - - [x] DrawImage - - [ ] Gradient brush (Need help) -- Other stuff I haven't thought of. - -### What might never happen -- Font support. I don't know where to start coding this so if you have any pointers please chip in. +### Features + +There's plenty there and more coming. Check out the [current features](features.md)! ### API -Without the constraints of `System.Drawing` I have been able to develop something much more flexible, easier to code against, and much, much less prone to memory leaks. Gone are system-wide process-locks. Images and processors are thread safe usable in parallel processing utilizing all the availables cores. +Without the constraints of `System.Drawing` We have been able to develop something much more flexible, easier to code against, and much, much less prone to memory leaks. Gone are system-wide process-locks. Images and processors are thread safe usable in parallel processing utilizing all the availables cores. Many `Image` methods are also fluent. diff --git a/features.md b/features.md new file mode 100644 index 000000000..764d7c4a6 --- /dev/null +++ b/features.md @@ -0,0 +1,137 @@ + +# Features + +### What works so far/ What is planned? + +We've achieved a lot so far and hope to do a lot more in the future. We're always looking for help so please pitch in! + +- **Encoding/decoding of image formats (plugable).** + - [x] Jpeg (Includes Subsampling. Progressive writing required) + - [x] Bmp (Read: 32bit, 24bit, 16 bit. Write: 32bit, 24bit just now) + - [x] Png (Read: Rgb, Rgba, Grayscale, Grayscale + alpha, Palette. Write: Rgb, Rgba, Grayscale, Grayscale + alpha, Palette) Supports interlaced decoding + - [x] Gif (Includes animated) + - [ ] Tiff +- **Metadata** + - [x] EXIF Read/Write (Jpeg just now) +- **Quantizers (IQuantizer with alpha channel support + thresholding)** + - [x] Octree + - [x] Xiaolin Wu + - [x] Palette +- **Basic color structs with implicit operators.** + - [x] Color - 32bit color in RGBA order (IPackedPixel\). + - [x] Bgra32 + - [x] CIE Lab + - [x] CIE XYZ + - [x] CMYK + - [x] HSV + - [x] HSL + - [x] YCbCr +- **IPackedPixel representations of color models. Compatible with Microsoft XNA Game Studio and MonoGame IPackedVector\.** + - [x] Alpha8 + - [x] Argb + - [x] Bgr565 + - [x] Bgra444 + - [x] Bgra565 + - [x] Byte4 + - [x] HalfSingle + - [x] HalfVector2 + - [x] HalfVector4 + - [x] NormalizedByte2 + - [x] NormalizedByte4 + - [x] NormalizedShort2 + - [x] NormalizedShort4 + - [x] Rg32 + - [x] Rgba1010102 + - [x] Rgba64 + - [x] Short2 + - [x] Short4 +- **Basic shape primitives.** + - [x] Rectangle + - [x] Size + - [x] Point + - [x] Ellipse +- **Resampling algorithms. (Optional gamma correction, resize modes, Performance improvements?)** + - [x] Box + - [x] Bicubic + - [x] Lanczos2 + - [x] Lanczos3 + - [x] Lanczos5 + - [x] Lanczos8 + - [x] MitchelNetravali + - [x] Nearest Neighbour + - [x] Robidoux + - [x] Robidoux Sharp + - [x] Spline + - [x] Triangle + - [x] Welch +- **Padding** + - [x] Pad + - [x] ResizeMode.Pad + - [x] ResizeMode.BoxPad +- **Cropping** + - [x] Rectangular Crop + - [ ] Elliptical Crop + - [x] Entropy Crop + - [x] ResizeMode.Crop +- **Rotation/Skew** + - [x] Flip (90, 270, FlipType etc) + - [x] Rotate by angle and center point (Expandable canvas). + - [x] Skew by x/y angles and center point (Expandable canvas). +- **ColorMatrix operations (Uses Matrix4x4)** + - [x] BlackWhite + - [x] Grayscale BT709 + - [x] Grayscale BT601 + - [x] Hue + - [x] Saturation + - [x] Lomograph + - [x] Polaroid + - [x] Kodachrome + - [x] Sepia + - [x] Achromatomaly + - [x] Achromatopsia + - [x] Deuteranomaly + - [x] Deuteranopia + - [x] Protanomaly + - [x] Protanopia + - [x] Tritanomaly + - [x] Tritanopia +- **Edge Detection** + - [x] Kayyali + - [x] Kirsch + - [x] Laplacian3X3 + - [x] Laplacian5X5 + - [x] LaplacianOfGaussian + - [x] Prewitt + - [x] RobertsCross + - [x] Robinson + - [x] Scharr + - [x] Sobel +- **Blurring/Sharpening** + - [x] Gaussian blur + - [x] Gaussian sharpening + - [x] Box Blur +- **Filters** + - [x] Alpha + - [x] Contrast + - [x] Invert + - [x] BackgroundColor + - [x] Brightness + - [x] Pixelate + - [ ] Mask + - [x] Oil Painting + - [x] Vignette + - [x] Glow + - [x] Threshold +- **Drawing** + - [x] Image brush + - [x] Pattern brush + - [x] Solid brush + - [X] Hatch brush (Partial copy of System.Drawing brushes) + - [x] Pen (Solid, Dash, Custom) + - [x] Line drawing + - [x] Complex Polygons (Fill, draw) + - [x] DrawImage + - [ ] Gradient brush (Need help) +- **DrawingText** + - [x] DrawString (Single variant support just now, no italic,bold) +- Other stuff I haven't thought of. \ No newline at end of file