diff --git a/ImageSharp.sln b/ImageSharp.sln
index 4ea89dd45..3ff5b09d4 100644
--- a/ImageSharp.sln
+++ b/ImageSharp.sln
@@ -43,12 +43,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageSharp.Tests", "tests\I
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageSharp.Benchmarks", "tests\ImageSharp.Benchmarks\ImageSharp.Benchmarks.csproj", "{2BF743D8-2A06-412D-96D7-F448F00C5EA5}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{7CC6D57E-B916-43B8-B315-A0BB92F260A2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvatarWithRoundedCorner", "samples\AvatarWithRoundedCorner\AvatarWithRoundedCorner.csproj", "{844FC582-4E78-4371-847D-EFD4D1103578}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ChangeDefaultEncoderOptions", "samples\ChangeDefaultEncoderOptions\ChangeDefaultEncoderOptions.csproj", "{07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageSharp.Sandbox46", "tests\ImageSharp.Sandbox46\ImageSharp.Sandbox46.csproj", "{561B880A-D9EE-44EF-90F5-817C54A9D9AB}"
EndProject
Global
@@ -112,30 +106,6 @@ Global
{2BF743D8-2A06-412D-96D7-F448F00C5EA5}.Release|x64.Build.0 = Release|Any CPU
{2BF743D8-2A06-412D-96D7-F448F00C5EA5}.Release|x86.ActiveCfg = Release|Any CPU
{2BF743D8-2A06-412D-96D7-F448F00C5EA5}.Release|x86.Build.0 = Release|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Debug|x64.ActiveCfg = Debug|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Debug|x64.Build.0 = Debug|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Debug|x86.ActiveCfg = Debug|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Debug|x86.Build.0 = Debug|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Release|Any CPU.Build.0 = Release|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Release|x64.ActiveCfg = Release|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Release|x64.Build.0 = Release|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Release|x86.ActiveCfg = Release|Any CPU
- {844FC582-4E78-4371-847D-EFD4D1103578}.Release|x86.Build.0 = Release|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Debug|x64.ActiveCfg = Debug|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Debug|x64.Build.0 = Debug|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Debug|x86.Build.0 = Debug|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Release|Any CPU.Build.0 = Release|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Release|x64.ActiveCfg = Release|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Release|x64.Build.0 = Release|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Release|x86.ActiveCfg = Release|Any CPU
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0}.Release|x86.Build.0 = Release|Any CPU
{561B880A-D9EE-44EF-90F5-817C54A9D9AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{561B880A-D9EE-44EF-90F5-817C54A9D9AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{561B880A-D9EE-44EF-90F5-817C54A9D9AB}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -158,8 +128,6 @@ Global
{2E33181E-6E28-4662-A801-E2E7DC206029} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
{2BF743D8-2A06-412D-96D7-F448F00C5EA5} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
- {844FC582-4E78-4371-847D-EFD4D1103578} = {7CC6D57E-B916-43B8-B315-A0BB92F260A2}
- {07EE511D-4BAB-4323-BAFC-3AF2BF9366F0} = {7CC6D57E-B916-43B8-B315-A0BB92F260A2}
{561B880A-D9EE-44EF-90F5-817C54A9D9AB} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
diff --git a/samples/AvatarWithRoundedCorner/AvatarWithRoundedCorner.csproj b/samples/AvatarWithRoundedCorner/AvatarWithRoundedCorner.csproj
deleted file mode 100644
index e000aacf1..000000000
--- a/samples/AvatarWithRoundedCorner/AvatarWithRoundedCorner.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- Exe
- netcoreapp1.1
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/AvatarWithRoundedCorner/Program.cs b/samples/AvatarWithRoundedCorner/Program.cs
deleted file mode 100644
index 087bbc29d..000000000
--- a/samples/AvatarWithRoundedCorner/Program.cs
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using System.Numerics;
-using SixLabors.ImageSharp;
-using SixLabors.ImageSharp.PixelFormats;
-using SixLabors.ImageSharp.Processing;
-using SixLabors.Primitives;
-using SixLabors.Shapes;
-
-namespace AvatarWithRoundedCorner
-{
- static class Program
- {
- static void Main(string[] args)
- {
- System.IO.Directory.CreateDirectory("output");
- using (var img = Image.Load("fb.jpg"))
- {
- // as generate returns a new IImage make sure we dispose of it
- using (Image destRound = img.Clone(x => x.ConvertToAvatar(new Size(200, 200), 20)))
- {
- destRound.Save("output/fb.png");
- }
-
- using (Image destRound = img.Clone(x => x.ConvertToAvatar(new Size(200, 200), 100)))
- {
- destRound.Save("output/fb-round.png");
- }
-
- using (Image destRound = img.Clone(x => x.ConvertToAvatar(new Size(200, 200), 150)))
- {
- destRound.Save("output/fb-rounder.png");
- }
-
- using (Image destRound = img.CloneAndConvertToAvatarWithoutApply(new Size(200, 200), 150))
- {
- destRound.Save("output/fb-rounder-without-apply.png");
- }
-
- // the original `img` object has not been altered at all.
- }
- }
-
- // 1. The short way:
- // Implements a full image mutating pipeline operating on IImageProcessingContext
- // We need the dimensions of the resized image to deduce 'IPathCollection' needed to build the corners,
- // so we implement an "inline" image processor by utilizing 'ImageExtensions.Apply()'
- private static IImageProcessingContext ConvertToAvatar(this IImageProcessingContext processingContext, Size size, float cornerRadius)
- {
- return processingContext.Resize(new ResizeOptions
- {
- Size = size,
- Mode = ResizeMode.Crop
- }).Apply(i => ApplyRoundedCorners(i, cornerRadius));
- }
-
- // 2. A more verbose way, avoiding 'Apply()':
- // First we create a resized clone of the image, then we draw the corners on that instance with Mutate().
- private static Image CloneAndConvertToAvatarWithoutApply(this Image image, Size size, float cornerRadius)
- {
- Image result = image.Clone(
- ctx => ctx.Resize(
- new ResizeOptions
- {
- Size = size,
- Mode = ResizeMode.Crop
- }));
-
- ApplyRoundedCorners(result, cornerRadius);
- return result;
- }
-
- // This method can be seen as an inline implementation of an `IImageProcessor`:
- // (The combination of `IImageOperations.Apply()` + this could be replaced with an `IImageProcessor`)
- public static void ApplyRoundedCorners(Image img, float cornerRadius)
- {
- IPathCollection corners = BuildCorners(img.Width, img.Height, cornerRadius);
-
- // mutating in here as we already have a cloned original
- img.Mutate(x => x.Fill(Rgba32.Transparent, corners, new GraphicsOptions(true)
- {
- BlenderMode = PixelBlenderMode.Src // enforces that any part of this shape that has color is punched out of the background
- }));
- }
-
- public static IPathCollection BuildCorners(int imageWidth, int imageHeight, float cornerRadius)
- {
- // first create a square
- var rect = new RectangularePolygon(-0.5f, -0.5f, cornerRadius, cornerRadius);
-
- // then cut out of the square a circle so we are left with a corner
- IPath cornerToptLeft = rect.Clip(new EllipsePolygon(cornerRadius - 0.5f, cornerRadius - 0.5f, cornerRadius));
-
- // corner is now a corner shape positions top left
- //lets make 3 more positioned correctly, we can do that by translating the orgional artound the center of the image
- var center = new Vector2(imageWidth / 2F, imageHeight / 2F);
-
- float rightPos = imageWidth - cornerToptLeft.Bounds.Width + 1;
- float bottomPos = imageHeight - cornerToptLeft.Bounds.Height + 1;
-
- // move it across the widthof the image - the width of the shape
- IPath cornerTopRight = cornerToptLeft.RotateDegree(90).Translate(rightPos, 0);
- IPath cornerBottomLeft = cornerToptLeft.RotateDegree(-90).Translate(0, bottomPos);
- IPath cornerBottomRight = cornerToptLeft.RotateDegree(180).Translate(rightPos, bottomPos);
-
- return new PathCollection(cornerToptLeft, cornerBottomLeft, cornerTopRight, cornerBottomRight);
- }
- }
-}
\ No newline at end of file
diff --git a/samples/AvatarWithRoundedCorner/fb.jpg b/samples/AvatarWithRoundedCorner/fb.jpg
deleted file mode 100644
index 305294f47..000000000
Binary files a/samples/AvatarWithRoundedCorner/fb.jpg and /dev/null differ
diff --git a/samples/ChangeDefaultEncoderOptions/ChangeDefaultEncoderOptions.csproj b/samples/ChangeDefaultEncoderOptions/ChangeDefaultEncoderOptions.csproj
deleted file mode 100644
index 5797be0f5..000000000
--- a/samples/ChangeDefaultEncoderOptions/ChangeDefaultEncoderOptions.csproj
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- Exe
- netcoreapp1.1
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/ChangeDefaultEncoderOptions/Program.cs b/samples/ChangeDefaultEncoderOptions/Program.cs
deleted file mode 100644
index a8fbd7599..000000000
--- a/samples/ChangeDefaultEncoderOptions/Program.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System;
-using SixLabors.ImageSharp;
-using SixLabors.ImageSharp.Formats.Jpeg;
-
-namespace ChangeDefaultEncoderOptions
-{
- class Program
- {
- static void Main(string[] args)
- {
- // lets switch out the default encoder for jpeg to one
- // that saves at 90 quality and ignores the matadata
- Configuration.Default.SetEncoder(ImageFormats.Jpeg, new JpegEncoder()
- {
- Quality = 90,
- IgnoreMetadata = true
- });
- }
- }
-}
\ No newline at end of file