From 85061df8047e5077ce0a2ee6cf1580c20ff0ac49 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Thu, 29 Dec 2016 10:47:07 +0000 Subject: [PATCH 01/36] Split Drawing from Core --- GitVersion.yml | 15 ++++ ImageSharp.sln | 7 ++ appveyor.yml | 25 +----- build.cmd | 37 +++++++++ build/appveyor-project-version-patch.js | 13 ---- build/appveyor-semver.ps1 | 17 ---- build/config.cmd | 8 ++ build/package.json | 6 -- build/reset-versions.cmd | 25 ++++++ build/update-versions.cmd | 41 ++++++++++ .../Brushes/Brushes.cs | 0 .../Brushes/Brushes{TColor}.cs | 0 .../Brushes/IBrush.cs | 0 .../Brushes/ImageBrush.cs | 0 .../Brushes/ImageBrush{TColor}.cs | 0 .../Brushes/PatternBrush.cs | 0 .../Brushes/PatternBrush{TColor}.cs | 0 .../Brushes/Processors/IBrushApplicator.cs | 0 .../Brushes/RecolorBrush.cs | 0 .../Brushes/RecolorBrush{TColor}.cs | 0 .../Brushes/SolidBrush.cs | 0 .../Brushes/SolidBrush{TColor}.cs | 0 .../Drawing => ImageSharp.Drawing}/Draw.cs | 0 .../DrawImage.cs | 0 .../DrawRectangle.cs | 0 .../Drawing => ImageSharp.Drawing}/Fill.cs | 0 .../FillRectangle.cs | 0 .../GraphicsOptions.cs | 0 .../ImageSharp.Drawing.xproj | 25 ++++++ .../Paths/BezierLineSegment.cs | 0 .../Paths/ILineSegment.cs | 0 .../Paths/IPath.cs | 0 .../Paths/InternalPath.cs | 0 .../Paths/LinearLineSegment.cs | 0 .../Paths/Path.cs | 0 .../Paths/PointInfo.cs | 0 .../Pens/IPen.cs | 0 .../Pens/Pen.cs | 0 .../Pens/Pens.cs | 0 .../Pens/Pens{TColor}.cs | 0 .../Pens/Pen{TColor}.cs | 0 .../Pens/Processors/ColoredPointInfo.cs | 0 .../Pens/Processors/IPenApplicator.cs | 0 .../Processors/DrawImageProcessor.cs | 0 .../Processors/DrawPathProcessor.cs | 0 .../Processors/FillProcessor.cs | 0 .../Processors/FillShapeProcessor.cs | 0 .../Properties/AssemblyInfo.cs | 40 ++++++++++ .../Shapes/BezierPolygon.cs | 0 .../Shapes/ComplexPolygon.cs | 0 .../Shapes/IShape.cs | 0 .../Shapes/LinearPolygon.cs | 0 .../Shapes/Polygon.cs | 0 .../Shapes/PolygonClipper/Clipper.cs | 0 .../Shapes/PolygonClipper/ClipperException.cs | 0 .../Shapes/PolygonClipper/Direction.cs | 0 .../Shapes/PolygonClipper/EdgeSide.cs | 0 .../Shapes/PolygonClipper/IntersectNode.cs | 0 .../PolygonClipper/IntersectNodeSort.cs | 0 .../Shapes/PolygonClipper/Join.cs | 0 .../Shapes/PolygonClipper/LocalMinima.cs | 0 .../Shapes/PolygonClipper/Maxima.cs | 0 .../Shapes/PolygonClipper/OutPt.cs | 0 .../Shapes/PolygonClipper/OutRec.cs | 0 .../Shapes/PolygonClipper/PolyNode.cs | 0 .../Shapes/PolygonClipper/PolyTree.cs | 0 .../Shapes/PolygonClipper/PolyType.cs | 0 .../Shapes/PolygonClipper/README.md | 0 .../Shapes/PolygonClipper/Scanbeam.cs | 0 .../Shapes/PolygonClipper/TEdge.cs | 0 .../Shapes/RectangularPolygon.cs | 0 src/ImageSharp.Drawing/project.json | 78 +++++++++++++++++++ src/ImageSharp.Drawing/stylecop.json | 9 +++ src/ImageSharp/Properties/AssemblyInfo.cs | 1 + tests/ImageSharp.Benchmarks/project.json | 3 +- tests/ImageSharp.Tests/project.json | 3 +- 76 files changed, 293 insertions(+), 60 deletions(-) create mode 100644 GitVersion.yml create mode 100644 build.cmd delete mode 100644 build/appveyor-project-version-patch.js delete mode 100644 build/appveyor-semver.ps1 create mode 100644 build/config.cmd delete mode 100644 build/package.json create mode 100644 build/reset-versions.cmd create mode 100644 build/update-versions.cmd rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/Brushes.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/Brushes{TColor}.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/IBrush.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/ImageBrush.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/ImageBrush{TColor}.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/PatternBrush.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/PatternBrush{TColor}.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/Processors/IBrushApplicator.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/RecolorBrush.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/RecolorBrush{TColor}.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/SolidBrush.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Brushes/SolidBrush{TColor}.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Draw.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/DrawImage.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/DrawRectangle.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Fill.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/FillRectangle.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/GraphicsOptions.cs (100%) create mode 100644 src/ImageSharp.Drawing/ImageSharp.Drawing.xproj rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Paths/BezierLineSegment.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Paths/ILineSegment.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Paths/IPath.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Paths/InternalPath.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Paths/LinearLineSegment.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Paths/Path.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Paths/PointInfo.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Pens/IPen.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Pens/Pen.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Pens/Pens.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Pens/Pens{TColor}.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Pens/Pen{TColor}.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Pens/Processors/ColoredPointInfo.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Pens/Processors/IPenApplicator.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Processors/DrawImageProcessor.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Processors/DrawPathProcessor.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Processors/FillProcessor.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Processors/FillShapeProcessor.cs (100%) create mode 100644 src/ImageSharp.Drawing/Properties/AssemblyInfo.cs rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/BezierPolygon.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/ComplexPolygon.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/IShape.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/LinearPolygon.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/Polygon.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/Clipper.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/ClipperException.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/Direction.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/EdgeSide.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/IntersectNode.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/IntersectNodeSort.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/Join.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/LocalMinima.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/Maxima.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/OutPt.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/OutRec.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/PolyNode.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/PolyTree.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/PolyType.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/README.md (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/Scanbeam.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/PolygonClipper/TEdge.cs (100%) rename src/{ImageSharp/Drawing => ImageSharp.Drawing}/Shapes/RectangularPolygon.cs (100%) create mode 100644 src/ImageSharp.Drawing/project.json create mode 100644 src/ImageSharp.Drawing/stylecop.json diff --git a/GitVersion.yml b/GitVersion.yml new file mode 100644 index 0000000000..914437baef --- /dev/null +++ b/GitVersion.yml @@ -0,0 +1,15 @@ +# to create a new package you create a new release/tag +# in github appveyor will build it without the -cixxx tag +# it will then be deployable cleanly to nuget.org + +next-version: 1.0.0 +legacy-semver-padding: 6 +branches: + master: + tag: alpha- + mode: ContinuousDeployment + increment: Minor + prevent-increment-of-merged-branch-version: false + track-merge-target: true +ignore: + sha: [] \ No newline at end of file diff --git a/ImageSharp.sln b/ImageSharp.sln index e949d1d579..01854bda1f 100644 --- a/ImageSharp.sln +++ b/ImageSharp.sln @@ -33,6 +33,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{815C06 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{56801022-D71A-4FBE-BC5B-CBA08E2284EC}" EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Drawing", "src\ImageSharp.Drawing\ImageSharp.Drawing.xproj", "{2E33181E-6E28-4662-A801-E2E7DC206029}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -51,6 +53,10 @@ Global {299D8E18-102C-42DE-ADBF-79098EE706A8}.Debug|Any CPU.Build.0 = Debug|Any CPU {299D8E18-102C-42DE-ADBF-79098EE706A8}.Release|Any CPU.ActiveCfg = Release|Any CPU {299D8E18-102C-42DE-ADBF-79098EE706A8}.Release|Any CPU.Build.0 = Release|Any CPU + {2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E33181E-6E28-4662-A801-E2E7DC206029}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E33181E-6E28-4662-A801-E2E7DC206029}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -59,5 +65,6 @@ Global {2AA31A1F-142C-43F4-8687-09ABCA4B3A26} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {F836E8E6-B4D9-4208-8346-140C74678B91} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC} {299D8E18-102C-42DE-ADBF-79098EE706A8} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC} + {2E33181E-6E28-4662-A801-E2E7DC206029} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} EndGlobalSection EndGlobal diff --git a/appveyor.yml b/appveyor.yml index ea1a585b0d..952720a789 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,6 +9,7 @@ environment: version_suffix: alpha install: +- choco install gitversion.portable -pre -y # Use the install script to grab the latest dotnet install - ps: iex .\dotnet-latest.ps1 @@ -17,31 +18,11 @@ install: # the parent CMD process). - "SET PATH=C:\\Program Files\\dotnet\\bin;%PATH%" -- ps: .\build\appveyor-semver.ps1 -- ps: Update-AppveyorBuild -Version "v$Env:appveyor_version" - -assembly_info: - patch: true - file: '**\AssemblyInfo.*' - assembly_version: '$(ms_file_version)' - assembly_file_version: '$(ms_file_version)' - assembly_informational_version: '$(mssemver)' - before_build: -- cmd: >- - dotnet restore src\ImageSharp - - cd build - - npm install - - node appveyor-project-version-patch.js - - cd.. +- ps: gitversion /l console /output buildserver /updateAssemblyInfo build_script: -- cmd: >- - dotnet pack src\ImageSharp --configuration Release --output "artifacts\bin\ImageSharp" +- cmd: build.cmd test_script: - tests\CodeCoverage\CodeCoverage.cmd diff --git a/build.cmd b/build.cmd new file mode 100644 index 0000000000..6a52e08207 --- /dev/null +++ b/build.cmd @@ -0,0 +1,37 @@ + + +@echo Off +ECHO Starting build + +call build\config.cmd + +ECHO Restoring packages +for %%s in (%projects%) do dotnet restore %%s + +call build\update-versions.cmd + +set buildRoot="%~dp0" +SET cli=dotnet pack --configuration Release --output "artifacts\bin\ImageSharp" +where gitversion +if not "%errorlevel%"=="0" ( + REM gitversion was not availible lets make a local build + SET cli=%cli% --version-suffix "local-build" +) + +ECHO Building packages +for %%s in (%projects%) do %cli% %%s + +REM reset local version numbers +call build\reset-versions.cmd + +:success +ECHO successfully built project +REM exit 0 +goto end + +:failure +ECHO failed to build. +REM exit -1 +goto end + +:end diff --git a/build/appveyor-project-version-patch.js b/build/appveyor-project-version-patch.js deleted file mode 100644 index 705a8bfa6e..0000000000 --- a/build/appveyor-project-version-patch.js +++ /dev/null @@ -1,13 +0,0 @@ -var jsonfile = require("jsonfile"); -var semver = require("semver"); - -var file = "../src/imagesharp/project.json"; - -var semversion = semver.valid(process.env.mssemver); - -jsonfile.readFile(file, function (err, project) { - project.version = semversion; - jsonfile.writeFile(file, project, {spaces: 2}, function(err) { - console.error(err); - }); -}) \ No newline at end of file diff --git a/build/appveyor-semver.ps1 b/build/appveyor-semver.ps1 deleted file mode 100644 index e8045e42ec..0000000000 --- a/build/appveyor-semver.ps1 +++ /dev/null @@ -1,17 +0,0 @@ -$version=[Version]$Env:APPVEYOR_BUILD_VERSION -$version_suffix=$Env:version_suffix - -$basever=$version.Major.ToString() + "." + $version.Minor.ToString() + "." + $version.Build.ToString() - -$semver = $basever + "-" + $version_suffix + "." + $version.Revision.ToString().PadLeft(6,"0") -$mssemver = $basever + "-" + $version_suffix + "-" + $version.Revision.ToString().PadLeft(6,"0") -$appveyor_version = $mssemver - -$Env:semver = $semver -$Env:mssemver = $mssemver -$Env:appveyor_version = $appveyor_version -$Env:ms_file_version = $version.ToString() - -"Envrionment variable 'semver' set:" + $Env:semver -"Envrionment variable 'mssemver' set:" + $Env:mssemver -"Envrionment variable 'appveyor_version' set:" + $Env:appveyor_version \ No newline at end of file diff --git a/build/config.cmd b/build/config.cmd new file mode 100644 index 0000000000..1619c2b1c2 --- /dev/null +++ b/build/config.cmd @@ -0,0 +1,8 @@ +@echo Off +REM ====================== +REM = Configure settings = + +REM Space seperated list of projects to version and package +SET projects=".\src\ImageSharp" ".\src\ImageSharp.Drawing" + +REM ====================== \ No newline at end of file diff --git a/build/package.json b/build/package.json deleted file mode 100644 index 59cc96e927..0000000000 --- a/build/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "dependencies": { - "jsonfile": "^2.2.3", - "semver": "^5.0.3" - } -} diff --git a/build/reset-versions.cmd b/build/reset-versions.cmd new file mode 100644 index 0000000000..0be7817dae --- /dev/null +++ b/build/reset-versions.cmd @@ -0,0 +1,25 @@ + + +@echo Off +REM include project configs +call %~dp0\config.cmd + +set buildRoot="%cd%" + +ECHO Reseting build version numbers +for %%s in (%projects%) do ( + cd %%s + ECHO %GitVersion_NuGetVersion% + dotnet version "1.0.0-*" + cd %buildRoot% +) + +:success +REM exit 0 +goto end + +:failure +REM exit -1 +goto end + +:end diff --git a/build/update-versions.cmd b/build/update-versions.cmd new file mode 100644 index 0000000000..9847144b44 --- /dev/null +++ b/build/update-versions.cmd @@ -0,0 +1,41 @@ + + +@echo Off +REM include project configs +call %~dp0\config.cmd + +REM gitversion not already been set in this build +if "%GitVersion_NuGetVersion%" == "" ( + rem can I call gitversion + where gitversion + if "%errorlevel%"=="0" ( + REM call gitversion and then recall this build script with the envArgs set + ECHO calculating correct version number + + REM call this file from itself with the args set + gitversion /output buildserver /exec "%~dp0\update-versions.cmd" + + REM we looped skip to the end + goto end + ) +) + +set buildRoot="%cd%" + +ECHO Updating build version numbers +for %%s in (%projects%) do ( + cd %%s + ECHO %GitVersion_NuGetVersion% + dotnet version %GitVersion_NuGetVersion% + cd %buildRoot% +) + +:success +REM exit 0 +goto end + +:failure +REM exit -1 +goto end + +:end diff --git a/src/ImageSharp/Drawing/Brushes/Brushes.cs b/src/ImageSharp.Drawing/Brushes/Brushes.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/Brushes.cs rename to src/ImageSharp.Drawing/Brushes/Brushes.cs diff --git a/src/ImageSharp/Drawing/Brushes/Brushes{TColor}.cs b/src/ImageSharp.Drawing/Brushes/Brushes{TColor}.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/Brushes{TColor}.cs rename to src/ImageSharp.Drawing/Brushes/Brushes{TColor}.cs diff --git a/src/ImageSharp/Drawing/Brushes/IBrush.cs b/src/ImageSharp.Drawing/Brushes/IBrush.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/IBrush.cs rename to src/ImageSharp.Drawing/Brushes/IBrush.cs diff --git a/src/ImageSharp/Drawing/Brushes/ImageBrush.cs b/src/ImageSharp.Drawing/Brushes/ImageBrush.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/ImageBrush.cs rename to src/ImageSharp.Drawing/Brushes/ImageBrush.cs diff --git a/src/ImageSharp/Drawing/Brushes/ImageBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/ImageBrush{TColor}.cs rename to src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs diff --git a/src/ImageSharp/Drawing/Brushes/PatternBrush.cs b/src/ImageSharp.Drawing/Brushes/PatternBrush.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/PatternBrush.cs rename to src/ImageSharp.Drawing/Brushes/PatternBrush.cs diff --git a/src/ImageSharp/Drawing/Brushes/PatternBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/PatternBrush{TColor}.cs rename to src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs diff --git a/src/ImageSharp/Drawing/Brushes/Processors/IBrushApplicator.cs b/src/ImageSharp.Drawing/Brushes/Processors/IBrushApplicator.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/Processors/IBrushApplicator.cs rename to src/ImageSharp.Drawing/Brushes/Processors/IBrushApplicator.cs diff --git a/src/ImageSharp/Drawing/Brushes/RecolorBrush.cs b/src/ImageSharp.Drawing/Brushes/RecolorBrush.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/RecolorBrush.cs rename to src/ImageSharp.Drawing/Brushes/RecolorBrush.cs diff --git a/src/ImageSharp/Drawing/Brushes/RecolorBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/RecolorBrush{TColor}.cs rename to src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs diff --git a/src/ImageSharp/Drawing/Brushes/SolidBrush.cs b/src/ImageSharp.Drawing/Brushes/SolidBrush.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/SolidBrush.cs rename to src/ImageSharp.Drawing/Brushes/SolidBrush.cs diff --git a/src/ImageSharp/Drawing/Brushes/SolidBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs similarity index 100% rename from src/ImageSharp/Drawing/Brushes/SolidBrush{TColor}.cs rename to src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs diff --git a/src/ImageSharp/Drawing/Draw.cs b/src/ImageSharp.Drawing/Draw.cs similarity index 100% rename from src/ImageSharp/Drawing/Draw.cs rename to src/ImageSharp.Drawing/Draw.cs diff --git a/src/ImageSharp/Drawing/DrawImage.cs b/src/ImageSharp.Drawing/DrawImage.cs similarity index 100% rename from src/ImageSharp/Drawing/DrawImage.cs rename to src/ImageSharp.Drawing/DrawImage.cs diff --git a/src/ImageSharp/Drawing/DrawRectangle.cs b/src/ImageSharp.Drawing/DrawRectangle.cs similarity index 100% rename from src/ImageSharp/Drawing/DrawRectangle.cs rename to src/ImageSharp.Drawing/DrawRectangle.cs diff --git a/src/ImageSharp/Drawing/Fill.cs b/src/ImageSharp.Drawing/Fill.cs similarity index 100% rename from src/ImageSharp/Drawing/Fill.cs rename to src/ImageSharp.Drawing/Fill.cs diff --git a/src/ImageSharp/Drawing/FillRectangle.cs b/src/ImageSharp.Drawing/FillRectangle.cs similarity index 100% rename from src/ImageSharp/Drawing/FillRectangle.cs rename to src/ImageSharp.Drawing/FillRectangle.cs diff --git a/src/ImageSharp/Drawing/GraphicsOptions.cs b/src/ImageSharp.Drawing/GraphicsOptions.cs similarity index 100% rename from src/ImageSharp/Drawing/GraphicsOptions.cs rename to src/ImageSharp.Drawing/GraphicsOptions.cs diff --git a/src/ImageSharp.Drawing/ImageSharp.Drawing.xproj b/src/ImageSharp.Drawing/ImageSharp.Drawing.xproj new file mode 100644 index 0000000000..488f86bc7a --- /dev/null +++ b/src/ImageSharp.Drawing/ImageSharp.Drawing.xproj @@ -0,0 +1,25 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + 2e33181e-6e28-4662-a801-e2e7dc206029 + ImageSharp.Drawing + .\obj + .\bin\ + v4.5.1 + + + 2.0 + + + True + + + + + + \ No newline at end of file diff --git a/src/ImageSharp/Drawing/Paths/BezierLineSegment.cs b/src/ImageSharp.Drawing/Paths/BezierLineSegment.cs similarity index 100% rename from src/ImageSharp/Drawing/Paths/BezierLineSegment.cs rename to src/ImageSharp.Drawing/Paths/BezierLineSegment.cs diff --git a/src/ImageSharp/Drawing/Paths/ILineSegment.cs b/src/ImageSharp.Drawing/Paths/ILineSegment.cs similarity index 100% rename from src/ImageSharp/Drawing/Paths/ILineSegment.cs rename to src/ImageSharp.Drawing/Paths/ILineSegment.cs diff --git a/src/ImageSharp/Drawing/Paths/IPath.cs b/src/ImageSharp.Drawing/Paths/IPath.cs similarity index 100% rename from src/ImageSharp/Drawing/Paths/IPath.cs rename to src/ImageSharp.Drawing/Paths/IPath.cs diff --git a/src/ImageSharp/Drawing/Paths/InternalPath.cs b/src/ImageSharp.Drawing/Paths/InternalPath.cs similarity index 100% rename from src/ImageSharp/Drawing/Paths/InternalPath.cs rename to src/ImageSharp.Drawing/Paths/InternalPath.cs diff --git a/src/ImageSharp/Drawing/Paths/LinearLineSegment.cs b/src/ImageSharp.Drawing/Paths/LinearLineSegment.cs similarity index 100% rename from src/ImageSharp/Drawing/Paths/LinearLineSegment.cs rename to src/ImageSharp.Drawing/Paths/LinearLineSegment.cs diff --git a/src/ImageSharp/Drawing/Paths/Path.cs b/src/ImageSharp.Drawing/Paths/Path.cs similarity index 100% rename from src/ImageSharp/Drawing/Paths/Path.cs rename to src/ImageSharp.Drawing/Paths/Path.cs diff --git a/src/ImageSharp/Drawing/Paths/PointInfo.cs b/src/ImageSharp.Drawing/Paths/PointInfo.cs similarity index 100% rename from src/ImageSharp/Drawing/Paths/PointInfo.cs rename to src/ImageSharp.Drawing/Paths/PointInfo.cs diff --git a/src/ImageSharp/Drawing/Pens/IPen.cs b/src/ImageSharp.Drawing/Pens/IPen.cs similarity index 100% rename from src/ImageSharp/Drawing/Pens/IPen.cs rename to src/ImageSharp.Drawing/Pens/IPen.cs diff --git a/src/ImageSharp/Drawing/Pens/Pen.cs b/src/ImageSharp.Drawing/Pens/Pen.cs similarity index 100% rename from src/ImageSharp/Drawing/Pens/Pen.cs rename to src/ImageSharp.Drawing/Pens/Pen.cs diff --git a/src/ImageSharp/Drawing/Pens/Pens.cs b/src/ImageSharp.Drawing/Pens/Pens.cs similarity index 100% rename from src/ImageSharp/Drawing/Pens/Pens.cs rename to src/ImageSharp.Drawing/Pens/Pens.cs diff --git a/src/ImageSharp/Drawing/Pens/Pens{TColor}.cs b/src/ImageSharp.Drawing/Pens/Pens{TColor}.cs similarity index 100% rename from src/ImageSharp/Drawing/Pens/Pens{TColor}.cs rename to src/ImageSharp.Drawing/Pens/Pens{TColor}.cs diff --git a/src/ImageSharp/Drawing/Pens/Pen{TColor}.cs b/src/ImageSharp.Drawing/Pens/Pen{TColor}.cs similarity index 100% rename from src/ImageSharp/Drawing/Pens/Pen{TColor}.cs rename to src/ImageSharp.Drawing/Pens/Pen{TColor}.cs diff --git a/src/ImageSharp/Drawing/Pens/Processors/ColoredPointInfo.cs b/src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs similarity index 100% rename from src/ImageSharp/Drawing/Pens/Processors/ColoredPointInfo.cs rename to src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs diff --git a/src/ImageSharp/Drawing/Pens/Processors/IPenApplicator.cs b/src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs similarity index 100% rename from src/ImageSharp/Drawing/Pens/Processors/IPenApplicator.cs rename to src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs diff --git a/src/ImageSharp/Drawing/Processors/DrawImageProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs similarity index 100% rename from src/ImageSharp/Drawing/Processors/DrawImageProcessor.cs rename to src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs diff --git a/src/ImageSharp/Drawing/Processors/DrawPathProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs similarity index 100% rename from src/ImageSharp/Drawing/Processors/DrawPathProcessor.cs rename to src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs diff --git a/src/ImageSharp/Drawing/Processors/FillProcessor.cs b/src/ImageSharp.Drawing/Processors/FillProcessor.cs similarity index 100% rename from src/ImageSharp/Drawing/Processors/FillProcessor.cs rename to src/ImageSharp.Drawing/Processors/FillProcessor.cs diff --git a/src/ImageSharp/Drawing/Processors/FillShapeProcessor.cs b/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs similarity index 100% rename from src/ImageSharp/Drawing/Processors/FillShapeProcessor.cs rename to src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs diff --git a/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs b/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..8f3982ee42 --- /dev/null +++ b/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs @@ -0,0 +1,40 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ImageSharp")] +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("James Jackson-South")] +[assembly: AssemblyProduct("ImageSharp")] +[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] +[assembly: InternalsVisibleTo("ImageSharp.Tests")] +[assembly: InternalsVisibleTo("ImageSharp.Tests46")] diff --git a/src/ImageSharp/Drawing/Shapes/BezierPolygon.cs b/src/ImageSharp.Drawing/Shapes/BezierPolygon.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/BezierPolygon.cs rename to src/ImageSharp.Drawing/Shapes/BezierPolygon.cs diff --git a/src/ImageSharp/Drawing/Shapes/ComplexPolygon.cs b/src/ImageSharp.Drawing/Shapes/ComplexPolygon.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/ComplexPolygon.cs rename to src/ImageSharp.Drawing/Shapes/ComplexPolygon.cs diff --git a/src/ImageSharp/Drawing/Shapes/IShape.cs b/src/ImageSharp.Drawing/Shapes/IShape.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/IShape.cs rename to src/ImageSharp.Drawing/Shapes/IShape.cs diff --git a/src/ImageSharp/Drawing/Shapes/LinearPolygon.cs b/src/ImageSharp.Drawing/Shapes/LinearPolygon.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/LinearPolygon.cs rename to src/ImageSharp.Drawing/Shapes/LinearPolygon.cs diff --git a/src/ImageSharp/Drawing/Shapes/Polygon.cs b/src/ImageSharp.Drawing/Shapes/Polygon.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/Polygon.cs rename to src/ImageSharp.Drawing/Shapes/Polygon.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/Clipper.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/Clipper.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/Clipper.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/Clipper.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/ClipperException.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/ClipperException.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/ClipperException.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/ClipperException.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/Direction.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/Direction.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/Direction.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/Direction.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/EdgeSide.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/EdgeSide.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/EdgeSide.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/EdgeSide.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/IntersectNode.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/IntersectNode.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/IntersectNode.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/IntersectNode.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/IntersectNodeSort.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/IntersectNodeSort.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/IntersectNodeSort.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/IntersectNodeSort.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/Join.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/Join.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/Join.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/Join.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/LocalMinima.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/LocalMinima.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/LocalMinima.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/LocalMinima.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/Maxima.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/Maxima.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/Maxima.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/Maxima.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/OutPt.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/OutPt.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/OutPt.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/OutPt.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/OutRec.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/OutRec.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/OutRec.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/OutRec.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/PolyNode.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/PolyNode.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/PolyNode.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/PolyNode.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/PolyTree.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/PolyTree.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/PolyTree.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/PolyTree.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/PolyType.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/PolyType.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/PolyType.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/PolyType.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/README.md b/src/ImageSharp.Drawing/Shapes/PolygonClipper/README.md similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/README.md rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/README.md diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/Scanbeam.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/Scanbeam.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/Scanbeam.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/Scanbeam.cs diff --git a/src/ImageSharp/Drawing/Shapes/PolygonClipper/TEdge.cs b/src/ImageSharp.Drawing/Shapes/PolygonClipper/TEdge.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/PolygonClipper/TEdge.cs rename to src/ImageSharp.Drawing/Shapes/PolygonClipper/TEdge.cs diff --git a/src/ImageSharp/Drawing/Shapes/RectangularPolygon.cs b/src/ImageSharp.Drawing/Shapes/RectangularPolygon.cs similarity index 100% rename from src/ImageSharp/Drawing/Shapes/RectangularPolygon.cs rename to src/ImageSharp.Drawing/Shapes/RectangularPolygon.cs diff --git a/src/ImageSharp.Drawing/project.json b/src/ImageSharp.Drawing/project.json new file mode 100644 index 0000000000..0e0f7a1667 --- /dev/null +++ b/src/ImageSharp.Drawing/project.json @@ -0,0 +1,78 @@ +{ + "version": "1.0.0-*", + "title": "ImageSharp.Drawing", + "description": "A cross-platform library for the processing of image files; written in C#", + "authors": [ + "James Jackson-South and contributors" + ], + "packOptions": { + "owners": [ + "James Jackson-South and contributors" + ], + "projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", + "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", + "iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", + "requireLicenseAcceptance": false, + "repository": { + "type": "git", + "url": "https://github.com/JimBobSquarePants/ImageSharp" + }, + "tags": [ + "Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" + ] + }, + "buildOptions": { + "allowUnsafe": true, + "xmlDoc": true, + "additionalArguments": [ + "/additionalfile:stylecop.json" + ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": "1.0.0-*", + "StyleCop.Analyzers": { + "version": "1.0.0", + "type": "build" + }, + "System.Buffers": "4.0.0", + "System.Numerics.Vectors": "4.1.1", + "System.Runtime.CompilerServices.Unsafe": "4.0.0" + }, + "frameworks": { + "netstandard1.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.IO": "4.1.0", + "System.IO.Compression": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Runtime.Numerics": "4.0.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Tasks.Parallel": "4.0.1" + } + }, + "net45": { + "dependencies": { + "System.Runtime": "4.0.0" + } + } + }, + "tools": { + "dotnet-version": "1.1.0" + } +} \ No newline at end of file diff --git a/src/ImageSharp.Drawing/stylecop.json b/src/ImageSharp.Drawing/stylecop.json new file mode 100644 index 0000000000..df8f120a5b --- /dev/null +++ b/src/ImageSharp.Drawing/stylecop.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "James Jackson-South", + "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Properties/AssemblyInfo.cs b/src/ImageSharp/Properties/AssemblyInfo.cs index 8f3982ee42..83f4268e74 100644 --- a/src/ImageSharp/Properties/AssemblyInfo.cs +++ b/src/ImageSharp/Properties/AssemblyInfo.cs @@ -38,3 +38,4 @@ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] [assembly: InternalsVisibleTo("ImageSharp.Tests")] [assembly: InternalsVisibleTo("ImageSharp.Tests46")] +[assembly: InternalsVisibleTo("ImageSharp.Drawing")] \ No newline at end of file diff --git a/tests/ImageSharp.Benchmarks/project.json b/tests/ImageSharp.Benchmarks/project.json index 171cf1310b..9cf5cac39b 100644 --- a/tests/ImageSharp.Benchmarks/project.json +++ b/tests/ImageSharp.Benchmarks/project.json @@ -15,7 +15,8 @@ }, "dependencies": { "BenchmarkDotNet.Diagnostics.Windows": "0.10.1", - "ImageSharp": "1.0.0-*" + "ImageSharp": "1.0.0-*", + "ImageSharp.Drawing": "1.0.0-*" }, "commands": { "ImageSharp.Benchmarks": "ImageSharp.Benchmarks" diff --git a/tests/ImageSharp.Tests/project.json b/tests/ImageSharp.Tests/project.json index e0e269239e..d6bdcb7d6d 100644 --- a/tests/ImageSharp.Tests/project.json +++ b/tests/ImageSharp.Tests/project.json @@ -22,7 +22,8 @@ "dependencies": { "ImageSharp": "1.0.0-*", "xunit": "2.2.0-*", - "dotnet-test-xunit": "2.2.0-*" + "dotnet-test-xunit": "2.2.0-*", + "ImageSharp.Drawing": "1.0.0-*" }, "frameworks": { "netcoreapp1.1": { From 3c97d236fdfde925ac8bf10c5021407ff918a18d Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Thu, 29 Dec 2016 21:05:58 +0000 Subject: [PATCH 02/36] Independently version multiple projects --- ImageSharp.sln | 9 + build.cmd | 37 +--- build/Program.cs | 252 +++++++++++++++++++++++++++ build/Properties/launchSettings.json | 7 + build/build-inner.cmd | 0 build/build.cmd | 18 ++ build/build.xproj | 25 +++ build/project.json | 22 +++ build/reset-versions.cmd | 23 +-- build/update-versions.cmd | 41 ----- 10 files changed, 337 insertions(+), 97 deletions(-) create mode 100644 build/Program.cs create mode 100644 build/Properties/launchSettings.json create mode 100644 build/build-inner.cmd create mode 100644 build/build.cmd create mode 100644 build/build.xproj create mode 100644 build/project.json delete mode 100644 build/update-versions.cmd diff --git a/ImageSharp.sln b/ImageSharp.sln index 01854bda1f..f6f2025313 100644 --- a/ImageSharp.sln +++ b/ImageSharp.sln @@ -35,6 +35,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{56801022 EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Drawing", "src\ImageSharp.Drawing\ImageSharp.Drawing.xproj", "{2E33181E-6E28-4662-A801-E2E7DC206029}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{E919DF0B-2607-4462-8FC0-5C98FE50F8C9}" +EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "build", "build\build.xproj", "{575A5002-DD9F-4335-AA47-1DD87FA13645}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -57,6 +61,10 @@ Global {2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|Any CPU.Build.0 = Debug|Any CPU {2E33181E-6E28-4662-A801-E2E7DC206029}.Release|Any CPU.ActiveCfg = Release|Any CPU {2E33181E-6E28-4662-A801-E2E7DC206029}.Release|Any CPU.Build.0 = Release|Any CPU + {575A5002-DD9F-4335-AA47-1DD87FA13645}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {575A5002-DD9F-4335-AA47-1DD87FA13645}.Debug|Any CPU.Build.0 = Debug|Any CPU + {575A5002-DD9F-4335-AA47-1DD87FA13645}.Release|Any CPU.ActiveCfg = Release|Any CPU + {575A5002-DD9F-4335-AA47-1DD87FA13645}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -66,5 +74,6 @@ Global {F836E8E6-B4D9-4208-8346-140C74678B91} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC} {299D8E18-102C-42DE-ADBF-79098EE706A8} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC} {2E33181E-6E28-4662-A801-E2E7DC206029} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {575A5002-DD9F-4335-AA47-1DD87FA13645} = {E919DF0B-2607-4462-8FC0-5C98FE50F8C9} EndGlobalSection EndGlobal diff --git a/build.cmd b/build.cmd index 6a52e08207..e33a230bcd 100644 --- a/build.cmd +++ b/build.cmd @@ -1,37 +1,2 @@ - - @echo Off -ECHO Starting build - -call build\config.cmd - -ECHO Restoring packages -for %%s in (%projects%) do dotnet restore %%s - -call build\update-versions.cmd - -set buildRoot="%~dp0" -SET cli=dotnet pack --configuration Release --output "artifacts\bin\ImageSharp" -where gitversion -if not "%errorlevel%"=="0" ( - REM gitversion was not availible lets make a local build - SET cli=%cli% --version-suffix "local-build" -) - -ECHO Building packages -for %%s in (%projects%) do %cli% %%s - -REM reset local version numbers -call build\reset-versions.cmd - -:success -ECHO successfully built project -REM exit 0 -goto end - -:failure -ECHO failed to build. -REM exit -1 -goto end - -:end +call build\build.cmd \ No newline at end of file diff --git a/build/Program.cs b/build/Program.cs new file mode 100644 index 0000000000..95e91cecdc --- /dev/null +++ b/build/Program.cs @@ -0,0 +1,252 @@ +using Microsoft.DotNet.ProjectModel; +using System; +using System.IO; +using System.Linq; +using NuGet.Versioning; +using System.Collections.Generic; +using LibGit2Sharp; +using Newtonsoft.Json; +using System.Text; + +namespace ConsoleApplication +{ + public class Program + { + const string fallbackTag = "CI"; + + public static void Main(string[] args) + { + var resetmode = args.Contains("reset"); + + // find the project root where glbal.json lives + var root = ProjectRootResolver.ResolveRootDirectory("."); + //lets find the repo + var repo = new LibGit2Sharp.Repository(root); + + //lets find all the project.json files in the src folder (don't care about versioning tests) + var projectFiles = Directory.EnumerateFiles(Path.Combine(root, "src"), Project.FileName, SearchOption.AllDirectories); + + //open them and convert them to source projects + var projects = projectFiles.Select(x => ProjectReader.GetProject(x)) + .Select(x => new SourceProject(x, repo.Info.WorkingDirectory)) + .ToList(); + if (resetmode) + { + if (File.Exists("build-inner.bak")) + { + File.Copy("build-inner.bak", "build-inner.cmd", true); + File.Delete("build-inner.bak"); + } + + //revert the project.json change be reverting it but skipp all the git stuff as its not needed + foreach (var p in projects) + { + if (File.Exists($"{p.FullProjectFilePath}.bak")) + { + File.Copy($"{p.FullProjectFilePath}.bak", p.FullProjectFilePath, true); + File.Delete($"{p.FullProjectFilePath}.bak"); + } + Console.WriteLine($"{p.Name} {p.Version.ToFullString()}"); + } + } + else + { + // populate the dependency chains + projects.ForEach(x => x.PopulateDependencies(projects)); + + + foreach (var p in projects) + { + foreach (var c in repo.Commits) + { + // lets apply each commit to the projects looking to see if they effect it or a + // dependency and detect if the commit was one that sent the current version + if (!p.ApplyCommit(c, repo)) + { + // if it did create the version then stop looking this one wins + break; + } + } + } + + // lets build version friendly commit + string branch = repo.Head.FriendlyName; + branch = branch.Replace("/", "-").Replace("--", "-"); + if (branch == "master") + { + branch = ""; + } + + var sb = new StringBuilder(); + foreach (var p in projects) + { + //we skip the build number and standard CI prefix on first commits + var newVersion = p.CalculateVersionNumber(branch); + File.Copy(p.FullProjectFilePath, $"{p.FullProjectFilePath}.bak", true); + dynamic projectFile = JsonConvert.DeserializeObject(File.ReadAllText(p.FullProjectFilePath)); + + projectFile.version = $"{newVersion}-*"; + File.WriteAllText(p.FullProjectFilePath, JsonConvert.SerializeObject(projectFile, Formatting.Indented)); + + Console.WriteLine($"{p.Name} {newVersion}"); + + sb.AppendLine($@"dotnet pack --configuration Release --output ""artifacts\bin\ImageSharp"" ""{p.ProjectFilePath}"""); + } + + File.Copy("build-inner.cmd", "build-inner.bak", true); + File.WriteAllText("build-inner.cmd", sb.ToString()); + } + } + + + + //find project root + public static string GetProjectRoot() + { + var path = Path.GetFullPath("."); + do + { + var jsonPath = Path.Combine(path, "global.json"); + if (File.Exists(jsonPath)) + { + return path; + } + else + { + path = Path.GetDirectoryName(path); + } + } while (!string.IsNullOrWhiteSpace(path)); + + return null; + } + + public class SourceProject + { + private readonly IEnumerable dependencies; + + public string ProjectDirectory { get; } + + public NuGetVersion Version { get; } + + public List DependentProjects { get; private set; } + public string Name { get; private set; } + public string ProjectFilePath { get; private set; } + + private int commitCount = 0; + public string FullProjectFilePath { get; private set; } + + public SourceProject(Project project, string root) + { + this.Name = project.Name; + this.ProjectDirectory = project.ProjectDirectory.Substring(root.Length); + this.ProjectFilePath = project.ProjectFilePath.Substring(root.Length); + this.FullProjectFilePath = project.ProjectFilePath; + this.Version = project.Version; + this.dependencies = project.Dependencies.Select(x => x.Name); + } + + public void PopulateDependencies(IEnumerable projects) + { + DependentProjects = projects.Where(x => dependencies.Contains(x.Name)).ToList(); + + } + + private bool MatchPath(string path) + { + if(path.StartsWith(this.ProjectDirectory, StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + if (DependentProjects.Any()) + { + return DependentProjects.Any(x => x.MatchPath(path)); + } + return false; + } + + internal bool ApplyCommitInternal(Commit commit, TreeChanges changes, Repository repo) + { + commitCount++; + + //return false if this is a version number root + var projectFileChange = changes.Where(x => x.Path?.Equals(this.ProjectFilePath, StringComparison.OrdinalIgnoreCase) == true).FirstOrDefault(); + if(projectFileChange != null) + { + if(projectFileChange.Status == ChangeKind.Added) + { + // the version must have been set here + return false; + } + else + { + var blob = repo.Lookup(projectFileChange.Oid); + using (var s = blob.GetContentStream()) + { + var project = new ProjectReader().ReadProject(s, this.Name, this.FullProjectFilePath, null); + if(project.Version != this.Version) + { + //version changed + return false; + } + } + } + // version must have been the same lets carry on + return true; + } + + return true; + } + internal bool ApplyCommit(Commit commit, Repository repo) + { + foreach (var parent in commit.Parents) + { + var changes = repo.Diff.Compare(parent.Tree, commit.Tree); + + foreach (TreeEntryChanges change in changes) + { + if (!string.IsNullOrWhiteSpace(change.OldPath)) + { + if (MatchPath(change.OldPath)) + { + return ApplyCommitInternal(commit, changes, repo); + } + } + + if (!string.IsNullOrWhiteSpace(change.Path)) + { + if (MatchPath(change.Path)) + { + return ApplyCommitInternal(commit, changes, repo); + } + } + } + } + + return true; + } + + internal string CalculateVersionNumber(string branch) + { + var version = this.Version.ToFullString(); + if (this.commitCount == 1 && branch == "") //master only + { + if (this.Version.IsPrerelease) + { + //prerelease always needs the build counter just not on a branch name + return $"{version}-{this.commitCount:000000}"; + } + //only 1 commit (the changing one) we will skip appending suffix + return version; + } + + if (branch == "") + { + branch = fallbackTag; + } + + return $"{version}-{branch}-{this.commitCount:000000}"; + } + } + } +} diff --git a/build/Properties/launchSettings.json b/build/Properties/launchSettings.json new file mode 100644 index 0000000000..b3ff6cb020 --- /dev/null +++ b/build/Properties/launchSettings.json @@ -0,0 +1,7 @@ +{ + "profiles": { + "build": { + "commandName": "Project" + } + } +} \ No newline at end of file diff --git a/build/build-inner.cmd b/build/build-inner.cmd new file mode 100644 index 0000000000..e69de29bb2 diff --git a/build/build.cmd b/build/build.cmd new file mode 100644 index 0000000000..d5a886219b --- /dev/null +++ b/build/build.cmd @@ -0,0 +1,18 @@ +@echo Off +set buildRoot="%cd%" + +ECHO restoring packages +dotnet restore + +ECHO Updating version numbers and generating build script +cd %~dp0 +dotnet run -- update +cd %buildRoot% + +ECHO Building package +call %~dp0build-inner.cmd + +ECHO Reset version numbers +cd %~dp0 +dotnet run -- reset +cd %buildRoot% \ No newline at end of file diff --git a/build/build.xproj b/build/build.xproj new file mode 100644 index 0000000000..3b85ca8722 --- /dev/null +++ b/build/build.xproj @@ -0,0 +1,25 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + 575a5002-dd9f-4335-aa47-1dd87fa13645 + build + .\obj + .\bin\ + v4.5.1 + + + 2.0 + + + True + + + + + + \ No newline at end of file diff --git a/build/project.json b/build/project.json new file mode 100644 index 0000000000..4f13b397fc --- /dev/null +++ b/build/project.json @@ -0,0 +1,22 @@ +{ + "version": "1.0.0-*", + "buildOptions": { + "debugType": "portable", + "emitEntryPoint": true + }, + "dependencies": { + "Microsoft.DotNet.ProjectModel": "1.0.0-rc3-003121", + "LibGit2Sharp": "0.23.0" + }, + "frameworks": { + "net46": { + //"dependencies": { + // "Microsoft.NETCore.App": { + // "type": "platform", + // "version": "1.0.0" + // } + //}, + //"imports": "dnxcore50" + } + } +} diff --git a/build/reset-versions.cmd b/build/reset-versions.cmd index 0be7817dae..31d1d24318 100644 --- a/build/reset-versions.cmd +++ b/build/reset-versions.cmd @@ -1,25 +1,8 @@ - - @echo Off -REM include project configs -call %~dp0\config.cmd set buildRoot="%cd%" +cd %~dp0 -ECHO Reseting build version numbers -for %%s in (%projects%) do ( - cd %%s - ECHO %GitVersion_NuGetVersion% - dotnet version "1.0.0-*" - cd %buildRoot% -) - -:success -REM exit 0 -goto end - -:failure -REM exit -1 -goto end +dotnet run -- reset -:end +cd %buildRoot% \ No newline at end of file diff --git a/build/update-versions.cmd b/build/update-versions.cmd deleted file mode 100644 index 9847144b44..0000000000 --- a/build/update-versions.cmd +++ /dev/null @@ -1,41 +0,0 @@ - - -@echo Off -REM include project configs -call %~dp0\config.cmd - -REM gitversion not already been set in this build -if "%GitVersion_NuGetVersion%" == "" ( - rem can I call gitversion - where gitversion - if "%errorlevel%"=="0" ( - REM call gitversion and then recall this build script with the envArgs set - ECHO calculating correct version number - - REM call this file from itself with the args set - gitversion /output buildserver /exec "%~dp0\update-versions.cmd" - - REM we looped skip to the end - goto end - ) -) - -set buildRoot="%cd%" - -ECHO Updating build version numbers -for %%s in (%projects%) do ( - cd %%s - ECHO %GitVersion_NuGetVersion% - dotnet version %GitVersion_NuGetVersion% - cd %buildRoot% -) - -:success -REM exit 0 -goto end - -:failure -REM exit -1 -goto end - -:end From 37ac9970a8bb0f9d9c1b15b1424fd2bee3265f84 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Thu, 29 Dec 2016 21:15:13 +0000 Subject: [PATCH 03/36] drop gitversion --- appveyor.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 952720a789..2792ab0fc6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,7 +9,6 @@ environment: version_suffix: alpha install: -- choco install gitversion.portable -pre -y # Use the install script to grab the latest dotnet install - ps: iex .\dotnet-latest.ps1 @@ -18,9 +17,6 @@ install: # the parent CMD process). - "SET PATH=C:\\Program Files\\dotnet\\bin;%PATH%" -before_build: -- ps: gitversion /l console /output buildserver /updateAssemblyInfo - build_script: - cmd: build.cmd From 7b9eac6c25cd49a5c8923cd972fdd467ca83abe2 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Thu, 29 Dec 2016 22:00:03 +0000 Subject: [PATCH 04/36] guess branch name in appveyor --- build/Program.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/build/Program.cs b/build/Program.cs index 95e91cecdc..75fc8974ee 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -71,6 +71,23 @@ namespace ConsoleApplication // lets build version friendly commit string branch = repo.Head.FriendlyName; + + // lets see if we are running in appveyor + var appveryorBranch = Environment.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH"); + if (!string.IsNullOrWhiteSpace(appveryorBranch)) + { + branch = appveryorBranch; + } + + var prNumber = Environment.GetEnvironmentVariable("APPVEYOR_PULL_REQUEST_NUMBER"); + if (!string.IsNullOrWhiteSpace(prNumber)) + { + branch = "PR" + prNumber; + } + if(branch == "(no branch)") + { + throw new Exception("unable to find branch"); + } branch = branch.Replace("/", "-").Replace("--", "-"); if (branch == "master") { From 6ead567a4c071a87ee5e3f4c10e54d500299e8df Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Fri, 30 Dec 2016 14:55:43 +0000 Subject: [PATCH 05/36] split formats into there own projects/packages --- ImageSharp.sln | 35 ++++++++ build/Program.cs | 29 ++++++- src/ImageSharp.Drawing/project.json | 3 - .../BmpBitsPerPixel.cs | 0 .../BmpCompression.cs | 0 .../BmpDecoder.cs | 0 .../BmpDecoderCore.cs | 0 .../BmpEncoder.cs | 0 .../BmpEncoderCore.cs | 2 +- .../BmpFileHeader.cs | 0 .../BmpFormat.cs | 0 .../BmpInfoHeader.cs | 0 .../BootstrapperExtensions.cs | 29 +++++++ src/ImageSharp.Formats.Bmp/ImageExtensions.cs | 32 ++++++++ .../ImageSharp.Formats.Bmp.xproj | 25 ++++++ .../Properties/AssemblyInfo.cs | 40 +++++++++ .../Bmp => ImageSharp.Formats.Bmp}/README.md | 0 src/ImageSharp.Formats.Bmp/project.json | 73 +++++++++++++++++ .../BootstrapperExtensions.cs | 29 +++++++ .../DisposalMethod.cs | 0 .../GifConstants.cs | 0 .../GifDecoder.cs | 0 .../GifDecoderCore.cs | 0 .../GifEncoder.cs | 0 .../GifEncoderCore.cs | 2 +- .../GifFormat.cs | 0 .../Helpers/ComparableExtensions.cs | 39 +++++++++ .../Helpers/ImageMaths.cs | 30 +++++++ .../Helpers/StreamExtensions.cs | 46 +++++++++++ src/ImageSharp.Formats.Gif/ImageExtensions.cs | 53 ++++++++++++ .../ImageSharp.Formats.Gif.xproj | 25 ++++++ .../LzwDecoder.cs | 0 .../LzwEncoder.cs | 0 .../PackedField.cs | 0 .../Properties/AssemblyInfo.cs | 40 +++++++++ .../Gif => ImageSharp.Formats.Gif}/README.md | 0 .../Sections/GifGraphicsControlExtension.cs | 0 .../Sections/GifImageDescriptor.cs | 0 .../Sections/GifLogicalScreenDescriptor.cs | 0 src/ImageSharp.Formats.Gif/project.json | 73 +++++++++++++++++ .../BootstrapperExtensions.cs | 29 +++++++ .../Components/Block8x8F.Generated.cs | 0 .../Components/Block8x8F.Generated.tt | 0 .../Components/Block8x8F.cs | 0 .../Components/BlockQuad.cs | 0 .../Components/DCT.cs | 0 .../Components/Decoder/Bits.cs | 0 .../Components/Decoder/Bytes.cs | 0 .../Components/Decoder/Component.cs | 0 .../Components/Decoder/HuffmanTree.cs | 0 .../Components/Decoder/JpegPixelArea.cs | 0 .../Components/Decoder/JpegScanDecoder.cs | 0 .../Components/Decoder/JpegScanDecoder.md | 0 .../Components/Decoder/Scan.cs | 0 .../Components/Decoder/YCbCrImage.cs | 0 .../Components/Encoder/HuffIndex.cs | 0 .../Components/Encoder/HuffmanLut.cs | 0 .../Components/Encoder/HuffmanSpec.cs | 0 .../Components/Encoder/QuantIndex.cs | 0 .../Helpers/ComparableExtensions.cs | 63 ++++++++++++++ .../ImageExtensions.cs | 33 ++++++++ .../ImageSharp.Formats.Jpeg.xproj | 25 ++++++ .../JpegConstants.cs | 0 .../JpegDecoder.cs | 0 .../JpegDecoderCore.cs | 0 .../JpegEncoder.cs | 0 .../JpegEncoderCore.cs | 0 .../JpegFormat.cs | 0 .../JpegSubsample.cs | 0 .../Properties/AssemblyInfo.cs | 40 +++++++++ .../Jpg => ImageSharp.Formats.Jpeg}/README.md | 0 .../UnzigData.cs | 0 .../Utils/JpegUtils.cs | 0 .../Utils/MutableSpan.cs | 0 .../Utils/MutableSpanExtensions.cs | 0 src/ImageSharp.Formats.Jpeg/project.json | 73 +++++++++++++++++ .../BootstrapperExtensions.cs | 29 +++++++ .../Filters/AverageFilter.cs | 0 .../Filters/FilterType.cs | 0 .../Filters/NoneFilter.cs | 0 .../Filters/PaethFilter.cs | 0 .../Filters/SubFilter.cs | 0 .../Filters/UpFilter.cs | 0 .../Helpers/ByteExtensions.cs | 45 ++++++++++ .../Helpers/ComparableExtensions.cs | 52 ++++++++++++ .../Helpers/ImageMaths.cs | 30 +++++++ .../Helpers/StreamExtensions.cs | 46 +++++++++++ src/ImageSharp.Formats.Png/ImageExtensions.cs | 35 ++++++++ .../ImageSharp.Formats.Png.xproj | 25 ++++++ .../PngChunk.cs | 0 .../PngChunkTypes.cs | 0 .../PngColorType.cs | 0 .../PngDecoder.cs | 0 .../PngDecoderCore.cs | 0 .../PngEncoder.cs | 0 .../PngEncoderCore.cs | 0 .../PngFormat.cs | 0 .../PngHeader.cs | 0 .../PngInterlaceMode.cs | 0 .../Properties/AssemblyInfo.cs | 40 +++++++++ .../Png => ImageSharp.Formats.Png}/README.md | 0 .../Zlib/Adler32.cs | 0 .../Zlib/Crc32.cs | 0 .../Zlib/IChecksum.cs | 0 .../Zlib/README.md | 0 .../Zlib/ZlibDeflateStream.cs | 0 .../Zlib/ZlibInflateStream.cs | 0 src/ImageSharp.Formats.Png/project.json | 73 +++++++++++++++++ .../BootstrapperExtensions.cs | 32 ++++++++ .../ImageSharp.Formats.xproj | 25 ++++++ .../Properties/AssemblyInfo.cs | 40 +++++++++ src/ImageSharp.Formats/project.json | 58 +++++++++++++ src/ImageSharp/Common/Helpers/Guard.cs | 2 +- src/ImageSharp/IO/EndianBinaryReader.cs | 25 +++--- src/ImageSharp/IO/EndianBinaryWriter.cs | 24 +++--- src/ImageSharp/IO/EndianBitConverter.cs | 25 ++++-- src/ImageSharp/IO/Endianness.cs | 2 +- src/ImageSharp/Image/ImageIOExtensions.cs | 79 ------------------ src/ImageSharp/Image/PixelAccessor{TColor}.cs | 16 ++-- src/ImageSharp/Image/PixelArea{TColor}.cs | 2 +- src/ImageSharp/Numerics/Rectangle.cs | 14 ++++ tests/ImageSharp.Benchmarks/project.json | 3 +- tests/ImageSharp.Tests/FileTestBase.cs | 1 + .../IO/BigEndianBitConverterTests.cs | 82 +++++++++---------- .../IO/EndianBinaryReaderTests.cs | 4 +- .../IO/LittleEndianBitConverterTests.cs | 82 +++++++++---------- tests/ImageSharp.Tests/TestBase.cs | 6 ++ tests/ImageSharp.Tests/project.json | 3 +- 128 files changed, 1551 insertions(+), 217 deletions(-) rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/BmpBitsPerPixel.cs (100%) rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/BmpCompression.cs (100%) rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/BmpDecoder.cs (100%) rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/BmpDecoderCore.cs (100%) rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/BmpEncoder.cs (100%) rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/BmpEncoderCore.cs (99%) rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/BmpFileHeader.cs (100%) rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/BmpFormat.cs (100%) rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/BmpInfoHeader.cs (100%) create mode 100644 src/ImageSharp.Formats.Bmp/BootstrapperExtensions.cs create mode 100644 src/ImageSharp.Formats.Bmp/ImageExtensions.cs create mode 100644 src/ImageSharp.Formats.Bmp/ImageSharp.Formats.Bmp.xproj create mode 100644 src/ImageSharp.Formats.Bmp/Properties/AssemblyInfo.cs rename src/{ImageSharp/Formats/Bmp => ImageSharp.Formats.Bmp}/README.md (100%) create mode 100644 src/ImageSharp.Formats.Bmp/project.json create mode 100644 src/ImageSharp.Formats.Gif/BootstrapperExtensions.cs rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/DisposalMethod.cs (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/GifConstants.cs (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/GifDecoder.cs (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/GifDecoderCore.cs (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/GifEncoder.cs (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/GifEncoderCore.cs (99%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/GifFormat.cs (100%) create mode 100644 src/ImageSharp.Formats.Gif/Helpers/ComparableExtensions.cs create mode 100644 src/ImageSharp.Formats.Gif/Helpers/ImageMaths.cs create mode 100644 src/ImageSharp.Formats.Gif/Helpers/StreamExtensions.cs create mode 100644 src/ImageSharp.Formats.Gif/ImageExtensions.cs create mode 100644 src/ImageSharp.Formats.Gif/ImageSharp.Formats.Gif.xproj rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/LzwDecoder.cs (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/LzwEncoder.cs (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/PackedField.cs (100%) create mode 100644 src/ImageSharp.Formats.Gif/Properties/AssemblyInfo.cs rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/README.md (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/Sections/GifGraphicsControlExtension.cs (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/Sections/GifImageDescriptor.cs (100%) rename src/{ImageSharp/Formats/Gif => ImageSharp.Formats.Gif}/Sections/GifLogicalScreenDescriptor.cs (100%) create mode 100644 src/ImageSharp.Formats.Gif/project.json create mode 100644 src/ImageSharp.Formats.Jpeg/BootstrapperExtensions.cs rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Block8x8F.Generated.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Block8x8F.Generated.tt (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Block8x8F.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/BlockQuad.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/DCT.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Decoder/Bits.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Decoder/Bytes.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Decoder/Component.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Decoder/HuffmanTree.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Decoder/JpegPixelArea.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Decoder/JpegScanDecoder.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Decoder/JpegScanDecoder.md (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Decoder/Scan.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Decoder/YCbCrImage.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Encoder/HuffIndex.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Encoder/HuffmanLut.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Encoder/HuffmanSpec.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Components/Encoder/QuantIndex.cs (100%) create mode 100644 src/ImageSharp.Formats.Jpeg/Helpers/ComparableExtensions.cs create mode 100644 src/ImageSharp.Formats.Jpeg/ImageExtensions.cs create mode 100644 src/ImageSharp.Formats.Jpeg/ImageSharp.Formats.Jpeg.xproj rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/JpegConstants.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/JpegDecoder.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/JpegDecoderCore.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/JpegEncoder.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/JpegEncoderCore.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/JpegFormat.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/JpegSubsample.cs (100%) create mode 100644 src/ImageSharp.Formats.Jpeg/Properties/AssemblyInfo.cs rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/README.md (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/UnzigData.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Utils/JpegUtils.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Utils/MutableSpan.cs (100%) rename src/{ImageSharp/Formats/Jpg => ImageSharp.Formats.Jpeg}/Utils/MutableSpanExtensions.cs (100%) create mode 100644 src/ImageSharp.Formats.Jpeg/project.json create mode 100644 src/ImageSharp.Formats.Png/BootstrapperExtensions.cs rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Filters/AverageFilter.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Filters/FilterType.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Filters/NoneFilter.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Filters/PaethFilter.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Filters/SubFilter.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Filters/UpFilter.cs (100%) create mode 100644 src/ImageSharp.Formats.Png/Helpers/ByteExtensions.cs create mode 100644 src/ImageSharp.Formats.Png/Helpers/ComparableExtensions.cs create mode 100644 src/ImageSharp.Formats.Png/Helpers/ImageMaths.cs create mode 100644 src/ImageSharp.Formats.Png/Helpers/StreamExtensions.cs create mode 100644 src/ImageSharp.Formats.Png/ImageExtensions.cs create mode 100644 src/ImageSharp.Formats.Png/ImageSharp.Formats.Png.xproj rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngChunk.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngChunkTypes.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngColorType.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngDecoder.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngDecoderCore.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngEncoder.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngEncoderCore.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngFormat.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngHeader.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/PngInterlaceMode.cs (100%) create mode 100644 src/ImageSharp.Formats.Png/Properties/AssemblyInfo.cs rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/README.md (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Zlib/Adler32.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Zlib/Crc32.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Zlib/IChecksum.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Zlib/README.md (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Zlib/ZlibDeflateStream.cs (100%) rename src/{ImageSharp/Formats/Png => ImageSharp.Formats.Png}/Zlib/ZlibInflateStream.cs (100%) create mode 100644 src/ImageSharp.Formats.Png/project.json create mode 100644 src/ImageSharp.Formats/BootstrapperExtensions.cs create mode 100644 src/ImageSharp.Formats/ImageSharp.Formats.xproj create mode 100644 src/ImageSharp.Formats/Properties/AssemblyInfo.cs create mode 100644 src/ImageSharp.Formats/project.json delete mode 100644 src/ImageSharp/Image/ImageIOExtensions.cs diff --git a/ImageSharp.sln b/ImageSharp.sln index f6f2025313..9f22d8d866 100644 --- a/ImageSharp.sln +++ b/ImageSharp.sln @@ -39,6 +39,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{E919DF0B EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "build", "build\build.xproj", "{575A5002-DD9F-4335-AA47-1DD87FA13645}" EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats", "src\ImageSharp.Formats\ImageSharp.Formats.xproj", "{C72B8906-260A-4688-9B7A-5CD4BDF419EC}" +EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Bmp", "src\ImageSharp.Formats.Bmp\ImageSharp.Formats.Bmp.xproj", "{C77661B9-F793-422E-8E27-AC60ECC5F215}" +EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Gif", "src\ImageSharp.Formats.Gif\ImageSharp.Formats.Gif.xproj", "{27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F}" +EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Jpeg", "src\ImageSharp.Formats.Jpeg\ImageSharp.Formats.Jpeg.xproj", "{7213767C-0003-41CA-AB18-0223CFA7CE4B}" +EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Png", "src\ImageSharp.Formats.Png\ImageSharp.Formats.Png.xproj", "{556ABDCF-ED93-4327-BE98-F6815F78B9B8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -65,6 +75,26 @@ Global {575A5002-DD9F-4335-AA47-1DD87FA13645}.Debug|Any CPU.Build.0 = Debug|Any CPU {575A5002-DD9F-4335-AA47-1DD87FA13645}.Release|Any CPU.ActiveCfg = Release|Any CPU {575A5002-DD9F-4335-AA47-1DD87FA13645}.Release|Any CPU.Build.0 = Release|Any CPU + {C72B8906-260A-4688-9B7A-5CD4BDF419EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C72B8906-260A-4688-9B7A-5CD4BDF419EC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C72B8906-260A-4688-9B7A-5CD4BDF419EC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C72B8906-260A-4688-9B7A-5CD4BDF419EC}.Release|Any CPU.Build.0 = Release|Any CPU + {C77661B9-F793-422E-8E27-AC60ECC5F215}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C77661B9-F793-422E-8E27-AC60ECC5F215}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C77661B9-F793-422E-8E27-AC60ECC5F215}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C77661B9-F793-422E-8E27-AC60ECC5F215}.Release|Any CPU.Build.0 = Release|Any CPU + {27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F}.Release|Any CPU.Build.0 = Release|Any CPU + {7213767C-0003-41CA-AB18-0223CFA7CE4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7213767C-0003-41CA-AB18-0223CFA7CE4B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7213767C-0003-41CA-AB18-0223CFA7CE4B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7213767C-0003-41CA-AB18-0223CFA7CE4B}.Release|Any CPU.Build.0 = Release|Any CPU + {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -75,5 +105,10 @@ Global {299D8E18-102C-42DE-ADBF-79098EE706A8} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC} {2E33181E-6E28-4662-A801-E2E7DC206029} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {575A5002-DD9F-4335-AA47-1DD87FA13645} = {E919DF0B-2607-4462-8FC0-5C98FE50F8C9} + {C72B8906-260A-4688-9B7A-5CD4BDF419EC} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {C77661B9-F793-422E-8E27-AC60ECC5F215} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {7213767C-0003-41CA-AB18-0223CFA7CE4B} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {556ABDCF-ED93-4327-BE98-F6815F78B9B8} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} EndGlobalSection EndGlobal diff --git a/build/Program.cs b/build/Program.cs index 75fc8974ee..13056a6eb3 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -245,24 +245,47 @@ namespace ConsoleApplication internal string CalculateVersionNumber(string branch) { - var version = this.Version.ToFullString(); + var version = this.Version.ToFullString(); + + if (this.commitCount == 1 && branch == "") //master only { if (this.Version.IsPrerelease) { //prerelease always needs the build counter just not on a branch name - return $"{version}-{this.commitCount:000000}"; + return $"{version}-{this.commitCount:00000}"; } + //only 1 commit (the changing one) we will skip appending suffix return version; } + var rootSpecialVersion = ""; + + if (this.Version.IsPrerelease) + { + var parts = version.Split(new[] { '-' }, 2); + version = parts[0]; + rootSpecialVersion = parts[1]; + } + if(rootSpecialVersion.Length > 0) + { + rootSpecialVersion = "-" + rootSpecialVersion; + } if (branch == "") { branch = fallbackTag; } - return $"{version}-{branch}-{this.commitCount:000000}"; + var maxLength = 20; + maxLength -= rootSpecialVersion.Length; + maxLength -= 7; // for the counter and dashes + if(branch.Length > maxLength) + { + branch = branch.Substring(0, maxLength); + } + + return $"{version}{rootSpecialVersion}-{branch}-{this.commitCount:00000}"; } } } diff --git a/src/ImageSharp.Drawing/project.json b/src/ImageSharp.Drawing/project.json index 0e0f7a1667..147044fb93 100644 --- a/src/ImageSharp.Drawing/project.json +++ b/src/ImageSharp.Drawing/project.json @@ -71,8 +71,5 @@ "System.Runtime": "4.0.0" } } - }, - "tools": { - "dotnet-version": "1.1.0" } } \ No newline at end of file diff --git a/src/ImageSharp/Formats/Bmp/BmpBitsPerPixel.cs b/src/ImageSharp.Formats.Bmp/BmpBitsPerPixel.cs similarity index 100% rename from src/ImageSharp/Formats/Bmp/BmpBitsPerPixel.cs rename to src/ImageSharp.Formats.Bmp/BmpBitsPerPixel.cs diff --git a/src/ImageSharp/Formats/Bmp/BmpCompression.cs b/src/ImageSharp.Formats.Bmp/BmpCompression.cs similarity index 100% rename from src/ImageSharp/Formats/Bmp/BmpCompression.cs rename to src/ImageSharp.Formats.Bmp/BmpCompression.cs diff --git a/src/ImageSharp/Formats/Bmp/BmpDecoder.cs b/src/ImageSharp.Formats.Bmp/BmpDecoder.cs similarity index 100% rename from src/ImageSharp/Formats/Bmp/BmpDecoder.cs rename to src/ImageSharp.Formats.Bmp/BmpDecoder.cs diff --git a/src/ImageSharp/Formats/Bmp/BmpDecoderCore.cs b/src/ImageSharp.Formats.Bmp/BmpDecoderCore.cs similarity index 100% rename from src/ImageSharp/Formats/Bmp/BmpDecoderCore.cs rename to src/ImageSharp.Formats.Bmp/BmpDecoderCore.cs diff --git a/src/ImageSharp/Formats/Bmp/BmpEncoder.cs b/src/ImageSharp.Formats.Bmp/BmpEncoder.cs similarity index 100% rename from src/ImageSharp/Formats/Bmp/BmpEncoder.cs rename to src/ImageSharp.Formats.Bmp/BmpEncoder.cs diff --git a/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs b/src/ImageSharp.Formats.Bmp/BmpEncoderCore.cs similarity index 99% rename from src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs rename to src/ImageSharp.Formats.Bmp/BmpEncoderCore.cs index 20c899a18d..94f2b3a38b 100644 --- a/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs +++ b/src/ImageSharp.Formats.Bmp/BmpEncoderCore.cs @@ -46,7 +46,7 @@ namespace ImageSharp.Formats this.padding = bytesPerLine - (image.Width * (int)bitsPerPixel); // Do not use IDisposable pattern here as we want to preserve the stream. - EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Little, stream); + EndianBinaryWriter writer = new EndianBinaryWriter(Endianness.LittleEndian, stream); BmpInfoHeader infoHeader = new BmpInfoHeader { diff --git a/src/ImageSharp/Formats/Bmp/BmpFileHeader.cs b/src/ImageSharp.Formats.Bmp/BmpFileHeader.cs similarity index 100% rename from src/ImageSharp/Formats/Bmp/BmpFileHeader.cs rename to src/ImageSharp.Formats.Bmp/BmpFileHeader.cs diff --git a/src/ImageSharp/Formats/Bmp/BmpFormat.cs b/src/ImageSharp.Formats.Bmp/BmpFormat.cs similarity index 100% rename from src/ImageSharp/Formats/Bmp/BmpFormat.cs rename to src/ImageSharp.Formats.Bmp/BmpFormat.cs diff --git a/src/ImageSharp/Formats/Bmp/BmpInfoHeader.cs b/src/ImageSharp.Formats.Bmp/BmpInfoHeader.cs similarity index 100% rename from src/ImageSharp/Formats/Bmp/BmpInfoHeader.cs rename to src/ImageSharp.Formats.Bmp/BmpInfoHeader.cs diff --git a/src/ImageSharp.Formats.Bmp/BootstrapperExtensions.cs b/src/ImageSharp.Formats.Bmp/BootstrapperExtensions.cs new file mode 100644 index 0000000000..3ed80a5bd9 --- /dev/null +++ b/src/ImageSharp.Formats.Bmp/BootstrapperExtensions.cs @@ -0,0 +1,29 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class BootstrapperExtensions + { + /// + /// Adds the BMP format. + /// + /// The bootstrapper. + /// The bootstraper + public static Bootstrapper AddBmpFormat(this Bootstrapper bootstrapper) + { + bootstrapper.AddImageFormat(new BmpFormat()); + return bootstrapper; + } + } +} diff --git a/src/ImageSharp.Formats.Bmp/ImageExtensions.cs b/src/ImageSharp.Formats.Bmp/ImageExtensions.cs new file mode 100644 index 0000000000..8bbae8487b --- /dev/null +++ b/src/ImageSharp.Formats.Bmp/ImageExtensions.cs @@ -0,0 +1,32 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class ImageExtensions + { + /// + /// Saves the image to the given stream with the bmp format. + /// + /// The pixel format. + /// The image this method extends. + /// The stream to save the image to. + /// Thrown if the stream is null. + /// + /// The . + /// + public static Image SaveAsBmp(this Image source, Stream stream) + where TColor : struct, IPackedPixel, IEquatable + => source.Save(stream, new BmpEncoder()); + } +} diff --git a/src/ImageSharp.Formats.Bmp/ImageSharp.Formats.Bmp.xproj b/src/ImageSharp.Formats.Bmp/ImageSharp.Formats.Bmp.xproj new file mode 100644 index 0000000000..94916399bd --- /dev/null +++ b/src/ImageSharp.Formats.Bmp/ImageSharp.Formats.Bmp.xproj @@ -0,0 +1,25 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + c77661b9-f793-422e-8e27-ac60ecc5f215 + ImageSharp.Formats.Bmp + .\obj + .\bin\ + v4.5.1 + + + 2.0 + + + True + + + + + + \ No newline at end of file diff --git a/src/ImageSharp.Formats.Bmp/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats.Bmp/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..c4e0043fdd --- /dev/null +++ b/src/ImageSharp.Formats.Bmp/Properties/AssemblyInfo.cs @@ -0,0 +1,40 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("James Jackson-South")] +[assembly: AssemblyProduct("ImageSharp")] +[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] +[assembly: InternalsVisibleTo("ImageSharp.Tests")] +[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file diff --git a/src/ImageSharp/Formats/Bmp/README.md b/src/ImageSharp.Formats.Bmp/README.md similarity index 100% rename from src/ImageSharp/Formats/Bmp/README.md rename to src/ImageSharp.Formats.Bmp/README.md diff --git a/src/ImageSharp.Formats.Bmp/project.json b/src/ImageSharp.Formats.Bmp/project.json new file mode 100644 index 0000000000..8211a87aa8 --- /dev/null +++ b/src/ImageSharp.Formats.Bmp/project.json @@ -0,0 +1,73 @@ +{ + "version": "1.0.0-*", + "title": "ImageSharp.Formats.Bmp", + "description": "A cross-platform library for the processing of image files; written in C#", + "authors": [ + "James Jackson-South and contributors" + ], + "packOptions": { + "owners": [ + "James Jackson-South and contributors" + ], + "projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", + "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", + "iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", + "requireLicenseAcceptance": false, + "repository": { + "type": "git", + "url": "https://github.com/JimBobSquarePants/ImageSharp" + }, + "tags": [ + "Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" + ] + }, + "buildOptions": { + "allowUnsafe": true, + "xmlDoc": true, + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": "1.0.0-*", + "StyleCop.Analyzers": { + "version": "1.1.0-beta001", + "type": "build" + }, + "System.Buffers": "4.0.0", + "System.Numerics.Vectors": "4.1.1", + "System.Runtime.CompilerServices.Unsafe": "4.0.0" + }, + "frameworks": { + "netstandard1.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.IO": "4.1.0", + "System.IO.Compression": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Runtime.Numerics": "4.0.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Tasks.Parallel": "4.0.1" + } + }, + "net45": { + "dependencies": { + "System.Runtime": "4.0.0" + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Gif/BootstrapperExtensions.cs b/src/ImageSharp.Formats.Gif/BootstrapperExtensions.cs new file mode 100644 index 0000000000..33faf854cf --- /dev/null +++ b/src/ImageSharp.Formats.Gif/BootstrapperExtensions.cs @@ -0,0 +1,29 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class BootstrapperExtensions + { + /// + /// Adds the Gif format. + /// + /// The bootstrapper. + /// The Bootstrapper + public static Bootstrapper AddGifFormat(this Bootstrapper bootstrapper) + { + bootstrapper.AddImageFormat(new GifFormat()); + return bootstrapper; + } + } +} diff --git a/src/ImageSharp/Formats/Gif/DisposalMethod.cs b/src/ImageSharp.Formats.Gif/DisposalMethod.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/DisposalMethod.cs rename to src/ImageSharp.Formats.Gif/DisposalMethod.cs diff --git a/src/ImageSharp/Formats/Gif/GifConstants.cs b/src/ImageSharp.Formats.Gif/GifConstants.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/GifConstants.cs rename to src/ImageSharp.Formats.Gif/GifConstants.cs diff --git a/src/ImageSharp/Formats/Gif/GifDecoder.cs b/src/ImageSharp.Formats.Gif/GifDecoder.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/GifDecoder.cs rename to src/ImageSharp.Formats.Gif/GifDecoder.cs diff --git a/src/ImageSharp/Formats/Gif/GifDecoderCore.cs b/src/ImageSharp.Formats.Gif/GifDecoderCore.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/GifDecoderCore.cs rename to src/ImageSharp.Formats.Gif/GifDecoderCore.cs diff --git a/src/ImageSharp/Formats/Gif/GifEncoder.cs b/src/ImageSharp.Formats.Gif/GifEncoder.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/GifEncoder.cs rename to src/ImageSharp.Formats.Gif/GifEncoder.cs diff --git a/src/ImageSharp/Formats/Gif/GifEncoderCore.cs b/src/ImageSharp.Formats.Gif/GifEncoderCore.cs similarity index 99% rename from src/ImageSharp/Formats/Gif/GifEncoderCore.cs rename to src/ImageSharp.Formats.Gif/GifEncoderCore.cs index 8a851fd682..e5b8ba08ae 100644 --- a/src/ImageSharp/Formats/Gif/GifEncoderCore.cs +++ b/src/ImageSharp.Formats.Gif/GifEncoderCore.cs @@ -62,7 +62,7 @@ namespace ImageSharp.Formats } // Do not use IDisposable pattern here as we want to preserve the stream. - EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Little, stream); + EndianBinaryWriter writer = new EndianBinaryWriter(Endianness.LittleEndian, stream); // Ensure that quality can be set but has a fallback. int quality = this.Quality > 0 ? this.Quality : image.Quality; diff --git a/src/ImageSharp/Formats/Gif/GifFormat.cs b/src/ImageSharp.Formats.Gif/GifFormat.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/GifFormat.cs rename to src/ImageSharp.Formats.Gif/GifFormat.cs diff --git a/src/ImageSharp.Formats.Gif/Helpers/ComparableExtensions.cs b/src/ImageSharp.Formats.Gif/Helpers/ComparableExtensions.cs new file mode 100644 index 0000000000..794c7d7986 --- /dev/null +++ b/src/ImageSharp.Formats.Gif/Helpers/ComparableExtensions.cs @@ -0,0 +1,39 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + + /// + /// Extension methods for classes that implement . + /// + internal static class ComparableExtensions + { + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static int Clamp(this int value, int min, int max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + } +} diff --git a/src/ImageSharp.Formats.Gif/Helpers/ImageMaths.cs b/src/ImageSharp.Formats.Gif/Helpers/ImageMaths.cs new file mode 100644 index 0000000000..8f377d3af0 --- /dev/null +++ b/src/ImageSharp.Formats.Gif/Helpers/ImageMaths.cs @@ -0,0 +1,30 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.Linq; + using System.Numerics; + + /// + /// Provides common mathematical methods. + /// + internal static class ImageMaths + { + /// + /// Returns how many bits are required to store the specified number of colors. + /// Performs a Log2() on the value. + /// + /// The number of colors. + /// + /// The + /// + public static int GetBitsNeededForColorDepth(int colors) + { + return (int)Math.Ceiling(Math.Log(colors, 2)); + } + } +} diff --git a/src/ImageSharp.Formats.Gif/Helpers/StreamExtensions.cs b/src/ImageSharp.Formats.Gif/Helpers/StreamExtensions.cs new file mode 100644 index 0000000000..6de94dd229 --- /dev/null +++ b/src/ImageSharp.Formats.Gif/Helpers/StreamExtensions.cs @@ -0,0 +1,46 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System.Buffers; + using System.IO; + + /// + /// Extension methods for the type. + /// + internal static class StreamExtensions + { + /// + /// Skips the number of bytes in the given stream. + /// + /// The stream. + /// The count. + public static void Skip(this Stream stream, int count) + { + if (count < 1) + { + return; + } + + if (stream.CanSeek) + { + stream.Position += count; + } + else + { + byte[] foo = ArrayPool.Shared.Rent(count); + try + { + stream.Read(foo, 0, count); + } + finally + { + ArrayPool.Shared.Return(foo); + } + } + } + } +} diff --git a/src/ImageSharp.Formats.Gif/ImageExtensions.cs b/src/ImageSharp.Formats.Gif/ImageExtensions.cs new file mode 100644 index 0000000000..287305a664 --- /dev/null +++ b/src/ImageSharp.Formats.Gif/ImageExtensions.cs @@ -0,0 +1,53 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class ImageExtensions + { + /// + /// Saves the image to the given stream with the gif format. + /// + /// The pixel format. + /// The image this method extends. + /// The stream to save the image to. + /// The quality to save the image to representing the number of colors. Between 1 and 256. + /// Thrown if the stream is null. + /// + /// The . + /// + public static Image SaveAsGif(this Image source, Stream stream, int quality = 256) + where TColor : struct, IPackedPixel, IEquatable + => source.Save(stream, new GifEncoder { Quality = quality }); + + /// + /// To the frame. + /// + /// The type of the color. + /// The source. + /// The frame + internal static ImageFrame ToFrame(this ImageBase source) + where TColor : struct, IPackedPixel, IEquatable + => new ImageFrame(source); + + /// + /// Clones the specified source. + /// + /// The type of the color. + /// The source. + /// The frame + internal static ImageFrame Clone(this ImageFrame source) + where TColor : struct, IPackedPixel, IEquatable + => new ImageFrame(source); + } +} diff --git a/src/ImageSharp.Formats.Gif/ImageSharp.Formats.Gif.xproj b/src/ImageSharp.Formats.Gif/ImageSharp.Formats.Gif.xproj new file mode 100644 index 0000000000..d11c20c482 --- /dev/null +++ b/src/ImageSharp.Formats.Gif/ImageSharp.Formats.Gif.xproj @@ -0,0 +1,25 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + 27ad4b5f-ecc4-4c63-9ecb-04ec772fdb6f + ImageSharp.Formats.Gif + .\obj + .\bin\ + v4.5.1 + + + 2.0 + + + True + + + + + + \ No newline at end of file diff --git a/src/ImageSharp/Formats/Gif/LzwDecoder.cs b/src/ImageSharp.Formats.Gif/LzwDecoder.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/LzwDecoder.cs rename to src/ImageSharp.Formats.Gif/LzwDecoder.cs diff --git a/src/ImageSharp/Formats/Gif/LzwEncoder.cs b/src/ImageSharp.Formats.Gif/LzwEncoder.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/LzwEncoder.cs rename to src/ImageSharp.Formats.Gif/LzwEncoder.cs diff --git a/src/ImageSharp/Formats/Gif/PackedField.cs b/src/ImageSharp.Formats.Gif/PackedField.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/PackedField.cs rename to src/ImageSharp.Formats.Gif/PackedField.cs diff --git a/src/ImageSharp.Formats.Gif/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats.Gif/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..c4e0043fdd --- /dev/null +++ b/src/ImageSharp.Formats.Gif/Properties/AssemblyInfo.cs @@ -0,0 +1,40 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("James Jackson-South")] +[assembly: AssemblyProduct("ImageSharp")] +[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] +[assembly: InternalsVisibleTo("ImageSharp.Tests")] +[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file diff --git a/src/ImageSharp/Formats/Gif/README.md b/src/ImageSharp.Formats.Gif/README.md similarity index 100% rename from src/ImageSharp/Formats/Gif/README.md rename to src/ImageSharp.Formats.Gif/README.md diff --git a/src/ImageSharp/Formats/Gif/Sections/GifGraphicsControlExtension.cs b/src/ImageSharp.Formats.Gif/Sections/GifGraphicsControlExtension.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/Sections/GifGraphicsControlExtension.cs rename to src/ImageSharp.Formats.Gif/Sections/GifGraphicsControlExtension.cs diff --git a/src/ImageSharp/Formats/Gif/Sections/GifImageDescriptor.cs b/src/ImageSharp.Formats.Gif/Sections/GifImageDescriptor.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/Sections/GifImageDescriptor.cs rename to src/ImageSharp.Formats.Gif/Sections/GifImageDescriptor.cs diff --git a/src/ImageSharp/Formats/Gif/Sections/GifLogicalScreenDescriptor.cs b/src/ImageSharp.Formats.Gif/Sections/GifLogicalScreenDescriptor.cs similarity index 100% rename from src/ImageSharp/Formats/Gif/Sections/GifLogicalScreenDescriptor.cs rename to src/ImageSharp.Formats.Gif/Sections/GifLogicalScreenDescriptor.cs diff --git a/src/ImageSharp.Formats.Gif/project.json b/src/ImageSharp.Formats.Gif/project.json new file mode 100644 index 0000000000..af54c6e748 --- /dev/null +++ b/src/ImageSharp.Formats.Gif/project.json @@ -0,0 +1,73 @@ +{ + "version": "1.0.0-*", + "title": "ImageSharp.Formats.Gif", + "description": "A cross-platform library for the processing of image files; written in C#", + "authors": [ + "James Jackson-South and contributors" + ], + "packOptions": { + "owners": [ + "James Jackson-South and contributors" + ], + "projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", + "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", + "iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", + "requireLicenseAcceptance": false, + "repository": { + "type": "git", + "url": "https://github.com/JimBobSquarePants/ImageSharp" + }, + "tags": [ + "Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" + ] + }, + "buildOptions": { + "allowUnsafe": true, + "xmlDoc": true, + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": "1.0.0-*", + "StyleCop.Analyzers": { + "version": "1.1.0-beta001", + "type": "build" + }, + "System.Buffers": "4.0.0", + "System.Numerics.Vectors": "4.1.1", + "System.Runtime.CompilerServices.Unsafe": "4.0.0" + }, + "frameworks": { + "netstandard1.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.IO": "4.1.0", + "System.IO.Compression": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Runtime.Numerics": "4.0.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Tasks.Parallel": "4.0.1" + } + }, + "net45": { + "dependencies": { + "System.Runtime": "4.0.0" + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Jpeg/BootstrapperExtensions.cs b/src/ImageSharp.Formats.Jpeg/BootstrapperExtensions.cs new file mode 100644 index 0000000000..b05a71e8b5 --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/BootstrapperExtensions.cs @@ -0,0 +1,29 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class BootstrapperExtensions + { + /// + /// Adds the Jpeg format. + /// + /// The bootstrapper. + /// The Bootstrapper + public static Bootstrapper AddJpegFormat(this Bootstrapper bootstrapper) + { + bootstrapper.AddImageFormat(new JpegFormat()); + return bootstrapper; + } + } +} diff --git a/src/ImageSharp/Formats/Jpg/Components/Block8x8F.Generated.cs b/src/ImageSharp.Formats.Jpeg/Components/Block8x8F.Generated.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Block8x8F.Generated.cs rename to src/ImageSharp.Formats.Jpeg/Components/Block8x8F.Generated.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Block8x8F.Generated.tt b/src/ImageSharp.Formats.Jpeg/Components/Block8x8F.Generated.tt similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Block8x8F.Generated.tt rename to src/ImageSharp.Formats.Jpeg/Components/Block8x8F.Generated.tt diff --git a/src/ImageSharp/Formats/Jpg/Components/Block8x8F.cs b/src/ImageSharp.Formats.Jpeg/Components/Block8x8F.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Block8x8F.cs rename to src/ImageSharp.Formats.Jpeg/Components/Block8x8F.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/BlockQuad.cs b/src/ImageSharp.Formats.Jpeg/Components/BlockQuad.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/BlockQuad.cs rename to src/ImageSharp.Formats.Jpeg/Components/BlockQuad.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/DCT.cs b/src/ImageSharp.Formats.Jpeg/Components/DCT.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/DCT.cs rename to src/ImageSharp.Formats.Jpeg/Components/DCT.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Decoder/Bits.cs b/src/ImageSharp.Formats.Jpeg/Components/Decoder/Bits.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Decoder/Bits.cs rename to src/ImageSharp.Formats.Jpeg/Components/Decoder/Bits.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Decoder/Bytes.cs b/src/ImageSharp.Formats.Jpeg/Components/Decoder/Bytes.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Decoder/Bytes.cs rename to src/ImageSharp.Formats.Jpeg/Components/Decoder/Bytes.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Decoder/Component.cs b/src/ImageSharp.Formats.Jpeg/Components/Decoder/Component.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Decoder/Component.cs rename to src/ImageSharp.Formats.Jpeg/Components/Decoder/Component.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Decoder/HuffmanTree.cs b/src/ImageSharp.Formats.Jpeg/Components/Decoder/HuffmanTree.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Decoder/HuffmanTree.cs rename to src/ImageSharp.Formats.Jpeg/Components/Decoder/HuffmanTree.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Decoder/JpegPixelArea.cs b/src/ImageSharp.Formats.Jpeg/Components/Decoder/JpegPixelArea.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Decoder/JpegPixelArea.cs rename to src/ImageSharp.Formats.Jpeg/Components/Decoder/JpegPixelArea.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Decoder/JpegScanDecoder.cs b/src/ImageSharp.Formats.Jpeg/Components/Decoder/JpegScanDecoder.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Decoder/JpegScanDecoder.cs rename to src/ImageSharp.Formats.Jpeg/Components/Decoder/JpegScanDecoder.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Decoder/JpegScanDecoder.md b/src/ImageSharp.Formats.Jpeg/Components/Decoder/JpegScanDecoder.md similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Decoder/JpegScanDecoder.md rename to src/ImageSharp.Formats.Jpeg/Components/Decoder/JpegScanDecoder.md diff --git a/src/ImageSharp/Formats/Jpg/Components/Decoder/Scan.cs b/src/ImageSharp.Formats.Jpeg/Components/Decoder/Scan.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Decoder/Scan.cs rename to src/ImageSharp.Formats.Jpeg/Components/Decoder/Scan.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Decoder/YCbCrImage.cs b/src/ImageSharp.Formats.Jpeg/Components/Decoder/YCbCrImage.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Decoder/YCbCrImage.cs rename to src/ImageSharp.Formats.Jpeg/Components/Decoder/YCbCrImage.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Encoder/HuffIndex.cs b/src/ImageSharp.Formats.Jpeg/Components/Encoder/HuffIndex.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Encoder/HuffIndex.cs rename to src/ImageSharp.Formats.Jpeg/Components/Encoder/HuffIndex.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Encoder/HuffmanLut.cs b/src/ImageSharp.Formats.Jpeg/Components/Encoder/HuffmanLut.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Encoder/HuffmanLut.cs rename to src/ImageSharp.Formats.Jpeg/Components/Encoder/HuffmanLut.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Encoder/HuffmanSpec.cs b/src/ImageSharp.Formats.Jpeg/Components/Encoder/HuffmanSpec.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Encoder/HuffmanSpec.cs rename to src/ImageSharp.Formats.Jpeg/Components/Encoder/HuffmanSpec.cs diff --git a/src/ImageSharp/Formats/Jpg/Components/Encoder/QuantIndex.cs b/src/ImageSharp.Formats.Jpeg/Components/Encoder/QuantIndex.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Components/Encoder/QuantIndex.cs rename to src/ImageSharp.Formats.Jpeg/Components/Encoder/QuantIndex.cs diff --git a/src/ImageSharp.Formats.Jpeg/Helpers/ComparableExtensions.cs b/src/ImageSharp.Formats.Jpeg/Helpers/ComparableExtensions.cs new file mode 100644 index 0000000000..c6c937629a --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/Helpers/ComparableExtensions.cs @@ -0,0 +1,63 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + + /// + /// Extension methods for classes that implement . + /// + internal static class ComparableExtensions + { + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static int Clamp(this int value, int min, int max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static float Clamp(this float value, float min, float max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + } +} diff --git a/src/ImageSharp.Formats.Jpeg/ImageExtensions.cs b/src/ImageSharp.Formats.Jpeg/ImageExtensions.cs new file mode 100644 index 0000000000..c0cda4d46a --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/ImageExtensions.cs @@ -0,0 +1,33 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class ImageExtensions + { + /// + /// Saves the image to the given stream with the jpeg format. + /// + /// The pixel format. + /// The image this method extends. + /// The stream to save the image to. + /// The quality to save the image to. Between 1 and 100. + /// Thrown if the stream is null. + /// + /// The . + /// + public static Image SaveAsJpeg(this Image source, Stream stream, int quality = 75) + where TColor : struct, IPackedPixel, IEquatable + => source.Save(stream, new JpegEncoder { Quality = quality }); + } +} diff --git a/src/ImageSharp.Formats.Jpeg/ImageSharp.Formats.Jpeg.xproj b/src/ImageSharp.Formats.Jpeg/ImageSharp.Formats.Jpeg.xproj new file mode 100644 index 0000000000..a22dc5ea34 --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/ImageSharp.Formats.Jpeg.xproj @@ -0,0 +1,25 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + 7213767c-0003-41ca-ab18-0223cfa7ce4b + ImageSharp.Formats + .\obj + .\bin\ + v4.5.1 + + + 2.0 + + + True + + + + + + \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpg/JpegConstants.cs b/src/ImageSharp.Formats.Jpeg/JpegConstants.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/JpegConstants.cs rename to src/ImageSharp.Formats.Jpeg/JpegConstants.cs diff --git a/src/ImageSharp/Formats/Jpg/JpegDecoder.cs b/src/ImageSharp.Formats.Jpeg/JpegDecoder.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/JpegDecoder.cs rename to src/ImageSharp.Formats.Jpeg/JpegDecoder.cs diff --git a/src/ImageSharp/Formats/Jpg/JpegDecoderCore.cs b/src/ImageSharp.Formats.Jpeg/JpegDecoderCore.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/JpegDecoderCore.cs rename to src/ImageSharp.Formats.Jpeg/JpegDecoderCore.cs diff --git a/src/ImageSharp/Formats/Jpg/JpegEncoder.cs b/src/ImageSharp.Formats.Jpeg/JpegEncoder.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/JpegEncoder.cs rename to src/ImageSharp.Formats.Jpeg/JpegEncoder.cs diff --git a/src/ImageSharp/Formats/Jpg/JpegEncoderCore.cs b/src/ImageSharp.Formats.Jpeg/JpegEncoderCore.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/JpegEncoderCore.cs rename to src/ImageSharp.Formats.Jpeg/JpegEncoderCore.cs diff --git a/src/ImageSharp/Formats/Jpg/JpegFormat.cs b/src/ImageSharp.Formats.Jpeg/JpegFormat.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/JpegFormat.cs rename to src/ImageSharp.Formats.Jpeg/JpegFormat.cs diff --git a/src/ImageSharp/Formats/Jpg/JpegSubsample.cs b/src/ImageSharp.Formats.Jpeg/JpegSubsample.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/JpegSubsample.cs rename to src/ImageSharp.Formats.Jpeg/JpegSubsample.cs diff --git a/src/ImageSharp.Formats.Jpeg/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats.Jpeg/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..c4e0043fdd --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/Properties/AssemblyInfo.cs @@ -0,0 +1,40 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("James Jackson-South")] +[assembly: AssemblyProduct("ImageSharp")] +[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] +[assembly: InternalsVisibleTo("ImageSharp.Tests")] +[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file diff --git a/src/ImageSharp/Formats/Jpg/README.md b/src/ImageSharp.Formats.Jpeg/README.md similarity index 100% rename from src/ImageSharp/Formats/Jpg/README.md rename to src/ImageSharp.Formats.Jpeg/README.md diff --git a/src/ImageSharp/Formats/Jpg/UnzigData.cs b/src/ImageSharp.Formats.Jpeg/UnzigData.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/UnzigData.cs rename to src/ImageSharp.Formats.Jpeg/UnzigData.cs diff --git a/src/ImageSharp/Formats/Jpg/Utils/JpegUtils.cs b/src/ImageSharp.Formats.Jpeg/Utils/JpegUtils.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Utils/JpegUtils.cs rename to src/ImageSharp.Formats.Jpeg/Utils/JpegUtils.cs diff --git a/src/ImageSharp/Formats/Jpg/Utils/MutableSpan.cs b/src/ImageSharp.Formats.Jpeg/Utils/MutableSpan.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Utils/MutableSpan.cs rename to src/ImageSharp.Formats.Jpeg/Utils/MutableSpan.cs diff --git a/src/ImageSharp/Formats/Jpg/Utils/MutableSpanExtensions.cs b/src/ImageSharp.Formats.Jpeg/Utils/MutableSpanExtensions.cs similarity index 100% rename from src/ImageSharp/Formats/Jpg/Utils/MutableSpanExtensions.cs rename to src/ImageSharp.Formats.Jpeg/Utils/MutableSpanExtensions.cs diff --git a/src/ImageSharp.Formats.Jpeg/project.json b/src/ImageSharp.Formats.Jpeg/project.json new file mode 100644 index 0000000000..685d009c3e --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/project.json @@ -0,0 +1,73 @@ +{ + "version": "1.0.0-*", + "title": "ImageSharp.Formats.Jpeg", + "description": "A cross-platform library for the processing of image files; written in C#", + "authors": [ + "James Jackson-South and contributors" + ], + "packOptions": { + "owners": [ + "James Jackson-South and contributors" + ], + "projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", + "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", + "iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", + "requireLicenseAcceptance": false, + "repository": { + "type": "git", + "url": "https://github.com/JimBobSquarePants/ImageSharp" + }, + "tags": [ + "Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" + ] + }, + "buildOptions": { + "allowUnsafe": true, + "xmlDoc": true, + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": "1.0.0-*", + "StyleCop.Analyzers": { + "version": "1.1.0-beta001", + "type": "build" + }, + "System.Buffers": "4.0.0", + "System.Numerics.Vectors": "4.1.1", + "System.Runtime.CompilerServices.Unsafe": "4.0.0" + }, + "frameworks": { + "netstandard1.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.IO": "4.1.0", + "System.IO.Compression": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Runtime.Numerics": "4.0.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Tasks.Parallel": "4.0.1" + } + }, + "net45": { + "dependencies": { + "System.Runtime": "4.0.0" + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Png/BootstrapperExtensions.cs b/src/ImageSharp.Formats.Png/BootstrapperExtensions.cs new file mode 100644 index 0000000000..eeef291a15 --- /dev/null +++ b/src/ImageSharp.Formats.Png/BootstrapperExtensions.cs @@ -0,0 +1,29 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class BootstrapperExtensions + { + /// + /// Adds the Png format. + /// + /// The bootstrapper. + /// The Bootstrapper + public static Bootstrapper AddPngFormat(this Bootstrapper bootstrapper) + { + bootstrapper.AddImageFormat(new PngFormat()); + return bootstrapper; + } + } +} diff --git a/src/ImageSharp/Formats/Png/Filters/AverageFilter.cs b/src/ImageSharp.Formats.Png/Filters/AverageFilter.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Filters/AverageFilter.cs rename to src/ImageSharp.Formats.Png/Filters/AverageFilter.cs diff --git a/src/ImageSharp/Formats/Png/Filters/FilterType.cs b/src/ImageSharp.Formats.Png/Filters/FilterType.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Filters/FilterType.cs rename to src/ImageSharp.Formats.Png/Filters/FilterType.cs diff --git a/src/ImageSharp/Formats/Png/Filters/NoneFilter.cs b/src/ImageSharp.Formats.Png/Filters/NoneFilter.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Filters/NoneFilter.cs rename to src/ImageSharp.Formats.Png/Filters/NoneFilter.cs diff --git a/src/ImageSharp/Formats/Png/Filters/PaethFilter.cs b/src/ImageSharp.Formats.Png/Filters/PaethFilter.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Filters/PaethFilter.cs rename to src/ImageSharp.Formats.Png/Filters/PaethFilter.cs diff --git a/src/ImageSharp/Formats/Png/Filters/SubFilter.cs b/src/ImageSharp.Formats.Png/Filters/SubFilter.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Filters/SubFilter.cs rename to src/ImageSharp.Formats.Png/Filters/SubFilter.cs diff --git a/src/ImageSharp/Formats/Png/Filters/UpFilter.cs b/src/ImageSharp.Formats.Png/Filters/UpFilter.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Filters/UpFilter.cs rename to src/ImageSharp.Formats.Png/Filters/UpFilter.cs diff --git a/src/ImageSharp.Formats.Png/Helpers/ByteExtensions.cs b/src/ImageSharp.Formats.Png/Helpers/ByteExtensions.cs new file mode 100644 index 0000000000..fc9c29e625 --- /dev/null +++ b/src/ImageSharp.Formats.Png/Helpers/ByteExtensions.cs @@ -0,0 +1,45 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + /// + /// Extension methods for the struct. + /// + internal static class ByteExtensions + { + /// + /// Optimized reversal algorithm. + /// + /// The byte array. + public static void ReverseBytes(this byte[] source) + { + ReverseBytes(source, 0, source.Length); + } + + /// + /// Optimized reversal algorithm. + /// + /// The byte array. + /// The index. + /// The length. + /// is null. + public static void ReverseBytes(this byte[] source, int index, int length) + { + Guard.NotNull(source, nameof(source)); + + int i = index; + int j = index + length - 1; + while (i < j) + { + byte temp = source[i]; + source[i] = source[j]; + source[j] = temp; + i++; + j--; + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Png/Helpers/ComparableExtensions.cs b/src/ImageSharp.Formats.Png/Helpers/ComparableExtensions.cs new file mode 100644 index 0000000000..826f397ce3 --- /dev/null +++ b/src/ImageSharp.Formats.Png/Helpers/ComparableExtensions.cs @@ -0,0 +1,52 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + + /// + /// Extension methods for classes that implement . + /// + internal static class ComparableExtensions + { + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static int Clamp(this int value, int min, int max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Swaps the references to two objects in memory. + /// + /// The first reference. + /// The second reference. + /// The type of object. + public static void Swap(ref T first, ref T second) + { + T temp = second; + second = first; + first = temp; + } + } +} diff --git a/src/ImageSharp.Formats.Png/Helpers/ImageMaths.cs b/src/ImageSharp.Formats.Png/Helpers/ImageMaths.cs new file mode 100644 index 0000000000..8f377d3af0 --- /dev/null +++ b/src/ImageSharp.Formats.Png/Helpers/ImageMaths.cs @@ -0,0 +1,30 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.Linq; + using System.Numerics; + + /// + /// Provides common mathematical methods. + /// + internal static class ImageMaths + { + /// + /// Returns how many bits are required to store the specified number of colors. + /// Performs a Log2() on the value. + /// + /// The number of colors. + /// + /// The + /// + public static int GetBitsNeededForColorDepth(int colors) + { + return (int)Math.Ceiling(Math.Log(colors, 2)); + } + } +} diff --git a/src/ImageSharp.Formats.Png/Helpers/StreamExtensions.cs b/src/ImageSharp.Formats.Png/Helpers/StreamExtensions.cs new file mode 100644 index 0000000000..6de94dd229 --- /dev/null +++ b/src/ImageSharp.Formats.Png/Helpers/StreamExtensions.cs @@ -0,0 +1,46 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System.Buffers; + using System.IO; + + /// + /// Extension methods for the type. + /// + internal static class StreamExtensions + { + /// + /// Skips the number of bytes in the given stream. + /// + /// The stream. + /// The count. + public static void Skip(this Stream stream, int count) + { + if (count < 1) + { + return; + } + + if (stream.CanSeek) + { + stream.Position += count; + } + else + { + byte[] foo = ArrayPool.Shared.Rent(count); + try + { + stream.Read(foo, 0, count); + } + finally + { + ArrayPool.Shared.Return(foo); + } + } + } + } +} diff --git a/src/ImageSharp.Formats.Png/ImageExtensions.cs b/src/ImageSharp.Formats.Png/ImageExtensions.cs new file mode 100644 index 0000000000..d46c46217e --- /dev/null +++ b/src/ImageSharp.Formats.Png/ImageExtensions.cs @@ -0,0 +1,35 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class ImageExtensions + { + /// + /// Saves the image to the given stream with the png format. + /// + /// The pixel format. + /// The image this method extends. + /// The stream to save the image to. + /// The quality to save the image to representing the number of colors. + /// Anything equal to 256 and below will cause the encoder to save the image in an indexed format. + /// + /// Thrown if the stream is null. + /// + /// The . + /// + public static Image SaveAsPng(this Image source, Stream stream, int quality = int.MaxValue) + where TColor : struct, IPackedPixel, IEquatable + => source.Save(stream, new PngEncoder { Quality = quality }); + } +} diff --git a/src/ImageSharp.Formats.Png/ImageSharp.Formats.Png.xproj b/src/ImageSharp.Formats.Png/ImageSharp.Formats.Png.xproj new file mode 100644 index 0000000000..f12901d6bc --- /dev/null +++ b/src/ImageSharp.Formats.Png/ImageSharp.Formats.Png.xproj @@ -0,0 +1,25 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + 556abdcf-ed93-4327-be98-f6815f78b9b8 + ImageSharp.Formats.Png + .\obj + .\bin\ + v4.5.1 + + + 2.0 + + + True + + + + + + \ No newline at end of file diff --git a/src/ImageSharp/Formats/Png/PngChunk.cs b/src/ImageSharp.Formats.Png/PngChunk.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngChunk.cs rename to src/ImageSharp.Formats.Png/PngChunk.cs diff --git a/src/ImageSharp/Formats/Png/PngChunkTypes.cs b/src/ImageSharp.Formats.Png/PngChunkTypes.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngChunkTypes.cs rename to src/ImageSharp.Formats.Png/PngChunkTypes.cs diff --git a/src/ImageSharp/Formats/Png/PngColorType.cs b/src/ImageSharp.Formats.Png/PngColorType.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngColorType.cs rename to src/ImageSharp.Formats.Png/PngColorType.cs diff --git a/src/ImageSharp/Formats/Png/PngDecoder.cs b/src/ImageSharp.Formats.Png/PngDecoder.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngDecoder.cs rename to src/ImageSharp.Formats.Png/PngDecoder.cs diff --git a/src/ImageSharp/Formats/Png/PngDecoderCore.cs b/src/ImageSharp.Formats.Png/PngDecoderCore.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngDecoderCore.cs rename to src/ImageSharp.Formats.Png/PngDecoderCore.cs diff --git a/src/ImageSharp/Formats/Png/PngEncoder.cs b/src/ImageSharp.Formats.Png/PngEncoder.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngEncoder.cs rename to src/ImageSharp.Formats.Png/PngEncoder.cs diff --git a/src/ImageSharp/Formats/Png/PngEncoderCore.cs b/src/ImageSharp.Formats.Png/PngEncoderCore.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngEncoderCore.cs rename to src/ImageSharp.Formats.Png/PngEncoderCore.cs diff --git a/src/ImageSharp/Formats/Png/PngFormat.cs b/src/ImageSharp.Formats.Png/PngFormat.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngFormat.cs rename to src/ImageSharp.Formats.Png/PngFormat.cs diff --git a/src/ImageSharp/Formats/Png/PngHeader.cs b/src/ImageSharp.Formats.Png/PngHeader.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngHeader.cs rename to src/ImageSharp.Formats.Png/PngHeader.cs diff --git a/src/ImageSharp/Formats/Png/PngInterlaceMode.cs b/src/ImageSharp.Formats.Png/PngInterlaceMode.cs similarity index 100% rename from src/ImageSharp/Formats/Png/PngInterlaceMode.cs rename to src/ImageSharp.Formats.Png/PngInterlaceMode.cs diff --git a/src/ImageSharp.Formats.Png/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats.Png/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..c4e0043fdd --- /dev/null +++ b/src/ImageSharp.Formats.Png/Properties/AssemblyInfo.cs @@ -0,0 +1,40 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("James Jackson-South")] +[assembly: AssemblyProduct("ImageSharp")] +[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] +[assembly: InternalsVisibleTo("ImageSharp.Tests")] +[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file diff --git a/src/ImageSharp/Formats/Png/README.md b/src/ImageSharp.Formats.Png/README.md similarity index 100% rename from src/ImageSharp/Formats/Png/README.md rename to src/ImageSharp.Formats.Png/README.md diff --git a/src/ImageSharp/Formats/Png/Zlib/Adler32.cs b/src/ImageSharp.Formats.Png/Zlib/Adler32.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Zlib/Adler32.cs rename to src/ImageSharp.Formats.Png/Zlib/Adler32.cs diff --git a/src/ImageSharp/Formats/Png/Zlib/Crc32.cs b/src/ImageSharp.Formats.Png/Zlib/Crc32.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Zlib/Crc32.cs rename to src/ImageSharp.Formats.Png/Zlib/Crc32.cs diff --git a/src/ImageSharp/Formats/Png/Zlib/IChecksum.cs b/src/ImageSharp.Formats.Png/Zlib/IChecksum.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Zlib/IChecksum.cs rename to src/ImageSharp.Formats.Png/Zlib/IChecksum.cs diff --git a/src/ImageSharp/Formats/Png/Zlib/README.md b/src/ImageSharp.Formats.Png/Zlib/README.md similarity index 100% rename from src/ImageSharp/Formats/Png/Zlib/README.md rename to src/ImageSharp.Formats.Png/Zlib/README.md diff --git a/src/ImageSharp/Formats/Png/Zlib/ZlibDeflateStream.cs b/src/ImageSharp.Formats.Png/Zlib/ZlibDeflateStream.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Zlib/ZlibDeflateStream.cs rename to src/ImageSharp.Formats.Png/Zlib/ZlibDeflateStream.cs diff --git a/src/ImageSharp/Formats/Png/Zlib/ZlibInflateStream.cs b/src/ImageSharp.Formats.Png/Zlib/ZlibInflateStream.cs similarity index 100% rename from src/ImageSharp/Formats/Png/Zlib/ZlibInflateStream.cs rename to src/ImageSharp.Formats.Png/Zlib/ZlibInflateStream.cs diff --git a/src/ImageSharp.Formats.Png/project.json b/src/ImageSharp.Formats.Png/project.json new file mode 100644 index 0000000000..20998a2d43 --- /dev/null +++ b/src/ImageSharp.Formats.Png/project.json @@ -0,0 +1,73 @@ +{ + "version": "1.0.0-*", + "title": "ImageSharp.Formats", + "description": "A cross-platform library for the processing of image files; written in C#", + "authors": [ + "James Jackson-South and contributors" + ], + "packOptions": { + "owners": [ + "James Jackson-South and contributors" + ], + "projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", + "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", + "iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", + "requireLicenseAcceptance": false, + "repository": { + "type": "git", + "url": "https://github.com/JimBobSquarePants/ImageSharp" + }, + "tags": [ + "Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" + ] + }, + "buildOptions": { + "allowUnsafe": true, + "xmlDoc": true, + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": "1.0.0-*", + "StyleCop.Analyzers": { + "version": "1.1.0-beta001", + "type": "build" + }, + "System.Buffers": "4.0.0", + "System.Numerics.Vectors": "4.1.1", + "System.Runtime.CompilerServices.Unsafe": "4.0.0" + }, + "frameworks": { + "netstandard1.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.IO": "4.1.0", + "System.IO.Compression": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Runtime.Numerics": "4.0.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Tasks.Parallel": "4.0.1" + } + }, + "net45": { + "dependencies": { + "System.Runtime": "4.0.0" + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp.Formats/BootstrapperExtensions.cs b/src/ImageSharp.Formats/BootstrapperExtensions.cs new file mode 100644 index 0000000000..90b3384a5e --- /dev/null +++ b/src/ImageSharp.Formats/BootstrapperExtensions.cs @@ -0,0 +1,32 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class BootstrapperExtensions + { + /// + /// Adds the common formats, PNG, JPEG, GIF and BMP. + /// + /// The bootstrapper. + /// The bootstrapper + public static Bootstrapper AddCommonFormats(this Bootstrapper bootstrapper) + { + return bootstrapper + .AddPngFormat() + .AddJpegFormat() + .AddGifFormat() + .AddBmpFormat(); + } + } +} diff --git a/src/ImageSharp.Formats/ImageSharp.Formats.xproj b/src/ImageSharp.Formats/ImageSharp.Formats.xproj new file mode 100644 index 0000000000..80a0b84a66 --- /dev/null +++ b/src/ImageSharp.Formats/ImageSharp.Formats.xproj @@ -0,0 +1,25 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + c72b8906-260a-4688-9b7a-5cd4bdf419ec + ImageSharp.Formats + .\obj + .\bin\ + v4.5.1 + + + 2.0 + + + True + + + + + + \ No newline at end of file diff --git a/src/ImageSharp.Formats/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..c4e0043fdd --- /dev/null +++ b/src/ImageSharp.Formats/Properties/AssemblyInfo.cs @@ -0,0 +1,40 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("James Jackson-South")] +[assembly: AssemblyProduct("ImageSharp")] +[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] +[assembly: InternalsVisibleTo("ImageSharp.Tests")] +[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file diff --git a/src/ImageSharp.Formats/project.json b/src/ImageSharp.Formats/project.json new file mode 100644 index 0000000000..37d1b25443 --- /dev/null +++ b/src/ImageSharp.Formats/project.json @@ -0,0 +1,58 @@ +{ + "version": "1.0.0-*", + "title": "ImageSharp.Formats", + "description": "A cross-platform library for the processing of image files; written in C#", + "authors": [ + "James Jackson-South and contributors" + ], + "packOptions": { + "owners": [ + "James Jackson-South and contributors" + ], + "projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", + "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", + "iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", + "requireLicenseAcceptance": false, + "repository": { + "type": "git", + "url": "https://github.com/JimBobSquarePants/ImageSharp" + }, + "tags": [ + "Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" + ] + }, + "buildOptions": { + "allowUnsafe": true, + "xmlDoc": true, + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": "1.0.0-*", + "ImageSharp.Formats.Png": "1.0.0-*", + "ImageSharp.Formats.Bmp": "1.0.0-*", + "ImageSharp.Formats.Jpeg": "1.0.0-*", + "ImageSharp.Formats.Gif": "1.0.0-*", + "StyleCop.Analyzers": { + "version": "1.1.0-beta001", + "type": "build" + } + }, + "frameworks": { + "netstandard1.1": { + "dependencies": { + } + }, + "net45": { + "dependencies": { + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Common/Helpers/Guard.cs b/src/ImageSharp/Common/Helpers/Guard.cs index cf307e9365..cc05e18005 100644 --- a/src/ImageSharp/Common/Helpers/Guard.cs +++ b/src/ImageSharp/Common/Helpers/Guard.cs @@ -14,7 +14,7 @@ namespace ImageSharp /// Provides methods to protect against invalid parameters. /// [DebuggerStepThrough] - internal static class Guard + public static class Guard { /// /// Verifies, that the method parameter with specified object value is not null diff --git a/src/ImageSharp/IO/EndianBinaryReader.cs b/src/ImageSharp/IO/EndianBinaryReader.cs index ae780ba4c7..d12d0b9761 100644 --- a/src/ImageSharp/IO/EndianBinaryReader.cs +++ b/src/ImageSharp/IO/EndianBinaryReader.cs @@ -45,14 +45,14 @@ namespace ImageSharp.IO /// Equivalent of , but with either endianness, depending on /// the EndianBitConverter it is constructed with. /// - /// - /// Converter to use when reading data + /// + /// Endianness to use when reading data /// /// /// Stream to read data from /// - public EndianBinaryReader(EndianBitConverter bitConverter, Stream stream) - : this(bitConverter, stream, Encoding.UTF8) + public EndianBinaryReader(Endianness endianness, Stream stream) + : this(endianness, stream, Encoding.UTF8) { } @@ -61,18 +61,17 @@ namespace ImageSharp.IO /// Constructs a new binary reader with the given bit converter, reading /// to the given stream, using the given encoding. /// - /// Converter to use when reading data + /// Endianness to use when reading data /// Stream to read data from /// Encoding to use when reading character data - public EndianBinaryReader(EndianBitConverter bitConverter, Stream stream, Encoding encoding) + public EndianBinaryReader(Endianness endianness, Stream stream, Encoding encoding) { - Guard.NotNull(bitConverter, nameof(bitConverter)); Guard.NotNull(stream, nameof(stream)); Guard.NotNull(encoding, nameof(encoding)); Guard.IsTrue(stream.CanRead, nameof(stream), "Stream isn't readable."); this.BaseStream = stream; - this.BitConverter = bitConverter; + this.BitConverter = EndianBitConverter.GetConverter(endianness); this.Encoding = encoding; this.decoder = encoding.GetDecoder(); this.minBytesPerChar = 1; @@ -83,11 +82,6 @@ namespace ImageSharp.IO } } - /// - /// Gets the bit converter used to read values from the stream. - /// - public EndianBitConverter BitConverter { get; } - /// /// Gets the encoding used to read strings /// @@ -98,6 +92,11 @@ namespace ImageSharp.IO /// public Stream BaseStream { get; } + /// + /// Gets the bit converter used to read values from the stream. + /// + internal EndianBitConverter BitConverter { get; } + /// /// Closes the reader, including the underlying stream. /// diff --git a/src/ImageSharp/IO/EndianBinaryWriter.cs b/src/ImageSharp/IO/EndianBinaryWriter.cs index c10d118cf4..d3fc524746 100644 --- a/src/ImageSharp/IO/EndianBinaryWriter.cs +++ b/src/ImageSharp/IO/EndianBinaryWriter.cs @@ -13,7 +13,7 @@ namespace ImageSharp.IO /// Equivalent of , but with either endianness, depending on /// the it is constructed with. /// - internal class EndianBinaryWriter : IDisposable + public class EndianBinaryWriter : IDisposable { /// /// Buffer used for temporary storage during conversion from primitives @@ -34,10 +34,10 @@ namespace ImageSharp.IO /// Initializes a new instance of the class /// with the given bit converter, writing to the given stream, using UTF-8 encoding. /// - /// Converter to use when writing data + /// Endianness to use when writing data /// Stream to write data to - public EndianBinaryWriter(EndianBitConverter bitConverter, Stream stream) - : this(bitConverter, stream, Encoding.UTF8) + public EndianBinaryWriter(Endianness endianness, Stream stream) + : this(endianness, stream, Encoding.UTF8) { } @@ -45,13 +45,15 @@ namespace ImageSharp.IO /// Initializes a new instance of the class /// with the given bit converter, writing to the given stream, using the given encoding. /// - /// Converter to use when writing data + /// Endianness to use when writing data /// Stream to write data to /// /// Encoding to use when writing character data /// - public EndianBinaryWriter(EndianBitConverter bitConverter, Stream stream, Encoding encoding) + public EndianBinaryWriter(Endianness endianness, Stream stream, Encoding encoding) { + var bitConverter = EndianBitConverter.GetConverter(endianness); + // TODO: Use Guard if (bitConverter == null) { @@ -78,11 +80,6 @@ namespace ImageSharp.IO this.Encoding = encoding; } - /// - /// Gets the bit converter used to write values to the stream - /// - public EndianBitConverter BitConverter { get; } - /// /// Gets the encoding used to write strings /// @@ -93,6 +90,11 @@ namespace ImageSharp.IO /// public Stream BaseStream { get; } + /// + /// Gets the bit converter used to write values to the stream + /// + internal EndianBitConverter BitConverter { get; } + /// /// Closes the writer, including the underlying stream. /// diff --git a/src/ImageSharp/IO/EndianBitConverter.cs b/src/ImageSharp/IO/EndianBitConverter.cs index e99e38db28..812823e7a2 100644 --- a/src/ImageSharp/IO/EndianBitConverter.cs +++ b/src/ImageSharp/IO/EndianBitConverter.cs @@ -49,22 +49,29 @@ namespace ImageSharp.IO /// private static readonly LittleEndianBitConverter LittleConverter = new LittleEndianBitConverter(); - /// - /// Gets a little-endian bit converter instance. The same instance is - /// always returned. - /// - public static LittleEndianBitConverter Little => LittleConverter; - /// /// The big-endian bit converter. /// private static readonly BigEndianBitConverter BigConverter = new BigEndianBitConverter(); /// - /// Gets a big-endian bit converter instance. The same instance is - /// always returned. + /// Gets the converter. /// - public static BigEndianBitConverter Big => BigConverter; + /// The endianness. + /// an + /// Not a valid form of Endianness - endianness + internal static EndianBitConverter GetConverter(Endianness endianness) + { + switch (endianness) + { + case Endianness.LittleEndian: + return LittleConverter; + case Endianness.BigEndian: + return BigConverter; + default: + throw new ArgumentException("Not a valid form of Endianness", nameof(endianness)); + } + } #endregion #region Double/primitive conversions diff --git a/src/ImageSharp/IO/Endianness.cs b/src/ImageSharp/IO/Endianness.cs index aefda6dc4b..50bfec3465 100644 --- a/src/ImageSharp/IO/Endianness.cs +++ b/src/ImageSharp/IO/Endianness.cs @@ -8,7 +8,7 @@ namespace ImageSharp.IO /// /// Endianness of a converter /// - internal enum Endianness + public enum Endianness { /// /// Little endian - least significant byte first diff --git a/src/ImageSharp/Image/ImageIOExtensions.cs b/src/ImageSharp/Image/ImageIOExtensions.cs deleted file mode 100644 index fd76e91372..0000000000 --- a/src/ImageSharp/Image/ImageIOExtensions.cs +++ /dev/null @@ -1,79 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class ImageExtensions - { - /// - /// Saves the image to the given stream with the bmp format. - /// - /// The pixel format. - /// The image this method extends. - /// The stream to save the image to. - /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsBmp(this Image source, Stream stream) - where TColor : struct, IPackedPixel, IEquatable - => source.Save(stream, new BmpEncoder()); - - /// - /// Saves the image to the given stream with the png format. - /// - /// The pixel format. - /// The image this method extends. - /// The stream to save the image to. - /// The quality to save the image to representing the number of colors. - /// Anything equal to 256 and below will cause the encoder to save the image in an indexed format. - /// - /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsPng(this Image source, Stream stream, int quality = int.MaxValue) - where TColor : struct, IPackedPixel, IEquatable - => source.Save(stream, new PngEncoder { Quality = quality }); - - /// - /// Saves the image to the given stream with the jpeg format. - /// - /// The pixel format. - /// The image this method extends. - /// The stream to save the image to. - /// The quality to save the image to. Between 1 and 100. - /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsJpeg(this Image source, Stream stream, int quality = 75) - where TColor : struct, IPackedPixel, IEquatable - => source.Save(stream, new JpegEncoder { Quality = quality }); - - /// - /// Saves the image to the given stream with the gif format. - /// - /// The pixel format. - /// The image this method extends. - /// The stream to save the image to. - /// The quality to save the image to representing the number of colors. Between 1 and 256. - /// Thrown if the stream is null. - /// - /// The . - /// - public static Image SaveAsGif(this Image source, Stream stream, int quality = 256) - where TColor : struct, IPackedPixel, IEquatable - => source.Save(stream, new GifEncoder { Quality = quality }); - } -} diff --git a/src/ImageSharp/Image/PixelAccessor{TColor}.cs b/src/ImageSharp/Image/PixelAccessor{TColor}.cs index b4f02c7bec..162891442c 100644 --- a/src/ImageSharp/Image/PixelAccessor{TColor}.cs +++ b/src/ImageSharp/Image/PixelAccessor{TColor}.cs @@ -240,6 +240,14 @@ namespace ImageSharp GC.SuppressFinalize(this); } + /// + /// Resets all the pixels to it's initial value. + /// + public void Reset() + { + Unsafe.InitBlock(this.pixelsBase, 0, (uint)(this.RowStride * this.Height)); + } + /// /// Copies the pixels to another of the same size. /// @@ -251,14 +259,6 @@ namespace ImageSharp Unsafe.CopyBlock(target.pixelsBase, this.pixelsBase, byteCount); } - /// - /// Resets all the pixels to it's initial value. - /// - internal void Reset() - { - Unsafe.InitBlock(this.pixelsBase, 0, (uint)(this.RowStride * this.Height)); - } - /// /// Copies from an area in format. /// diff --git a/src/ImageSharp/Image/PixelArea{TColor}.cs b/src/ImageSharp/Image/PixelArea{TColor}.cs index 40da75c829..99e9273751 100644 --- a/src/ImageSharp/Image/PixelArea{TColor}.cs +++ b/src/ImageSharp/Image/PixelArea{TColor}.cs @@ -231,7 +231,7 @@ namespace ImageSharp /// /// Resets the bytes of the array to it's initial value. /// - internal void Reset() + public void Reset() { Unsafe.InitBlock(this.PixelBase, 0, (uint)(this.RowStride * this.Height)); } diff --git a/src/ImageSharp/Numerics/Rectangle.cs b/src/ImageSharp/Numerics/Rectangle.cs index 3bd844bc89..b651eff71a 100644 --- a/src/ImageSharp/Numerics/Rectangle.cs +++ b/src/ImageSharp/Numerics/Rectangle.cs @@ -54,6 +54,20 @@ namespace ImageSharp this.backingVector = new Vector4(point.X, point.Y, size.Width, size.Height); } + /// + /// Initializes a new instance of the struct. + /// + /// + /// The which specifies the rectangles top left point in a two-dimensional plane. + /// + /// + /// The which specifies the rectangles bottom right point in a two-dimensional plane. + /// + public Rectangle(Point topLeft, Point bottomRight) + { + this.backingVector = new Vector4(topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y); + } + /// /// Initializes a new instance of the struct. /// diff --git a/tests/ImageSharp.Benchmarks/project.json b/tests/ImageSharp.Benchmarks/project.json index 9cf5cac39b..3160268d73 100644 --- a/tests/ImageSharp.Benchmarks/project.json +++ b/tests/ImageSharp.Benchmarks/project.json @@ -16,7 +16,8 @@ "dependencies": { "BenchmarkDotNet.Diagnostics.Windows": "0.10.1", "ImageSharp": "1.0.0-*", - "ImageSharp.Drawing": "1.0.0-*" + "ImageSharp.Drawing": "1.0.0-*", + "ImageSharp.Formats": "1.0.0-*" }, "commands": { "ImageSharp.Benchmarks": "ImageSharp.Benchmarks" diff --git a/tests/ImageSharp.Tests/FileTestBase.cs b/tests/ImageSharp.Tests/FileTestBase.cs index 0dbf132990..72a681a559 100644 --- a/tests/ImageSharp.Tests/FileTestBase.cs +++ b/tests/ImageSharp.Tests/FileTestBase.cs @@ -6,6 +6,7 @@ namespace ImageSharp.Tests { using System.Collections.Generic; + using ImageSharp.Formats; /// /// The test base class for reading and writing to files. diff --git a/tests/ImageSharp.Tests/IO/BigEndianBitConverterTests.cs b/tests/ImageSharp.Tests/IO/BigEndianBitConverterTests.cs index 0bcd675704..2030c3dcad 100644 --- a/tests/ImageSharp.Tests/IO/BigEndianBitConverterTests.cs +++ b/tests/ImageSharp.Tests/IO/BigEndianBitConverterTests.cs @@ -20,11 +20,11 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesShort() { - this.CheckBytes(new byte[] { 0, 0 }, EndianBitConverter.Big.GetBytes((short)0)); - this.CheckBytes(new byte[] { 0, 1 }, EndianBitConverter.Big.GetBytes((short)1)); - this.CheckBytes(new byte[] { 1, 0 }, EndianBitConverter.Big.GetBytes((short)256)); - this.CheckBytes(new byte[] { 255, 255 }, EndianBitConverter.Big.GetBytes((short)-1)); - this.CheckBytes(new byte[] { 1, 1 }, EndianBitConverter.Big.GetBytes((short)257)); + this.CheckBytes(new byte[] { 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((short)0)); + this.CheckBytes(new byte[] { 0, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((short)1)); + this.CheckBytes(new byte[] { 1, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((short)256)); + this.CheckBytes(new byte[] { 255, 255 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((short)-1)); + this.CheckBytes(new byte[] { 1, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((short)257)); } /// @@ -33,13 +33,13 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesInt() { - this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes((int)0)); - this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.Big.GetBytes((int)1)); - this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.Big.GetBytes((int)256)); - this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.Big.GetBytes((int)65536)); - this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.Big.GetBytes((int)16777216)); - this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.Big.GetBytes((int)-1)); - this.CheckBytes(new byte[] { 0, 0, 1, 1 }, EndianBitConverter.Big.GetBytes((int)257)); + this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((int)0)); + this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((int)1)); + this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((int)256)); + this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((int)65536)); + this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((int)16777216)); + this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((int)-1)); + this.CheckBytes(new byte[] { 0, 0, 1, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((int)257)); } /// @@ -48,13 +48,13 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesUInt() { - this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes((uint)0)); - this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.Big.GetBytes((uint)1)); - this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.Big.GetBytes((uint)256)); - this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.Big.GetBytes((uint)65536)); - this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.Big.GetBytes((uint)16777216)); - this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.Big.GetBytes((uint)uint.MaxValue)); - this.CheckBytes(new byte[] { 0, 0, 1, 1 }, EndianBitConverter.Big.GetBytes((uint)257)); + this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((uint)0)); + this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((uint)1)); + this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((uint)256)); + this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((uint)65536)); + this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((uint)16777216)); + this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((uint)uint.MaxValue)); + this.CheckBytes(new byte[] { 0, 0, 1, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes((uint)257)); } /// @@ -63,17 +63,17 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesLong() { - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(0L)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.Big.GetBytes(1L)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.Big.GetBytes(256L)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.Big.GetBytes(65536L)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(16777216L)); - this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(4294967296L)); - this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(1099511627776L)); - this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(1099511627776L * 256)); - this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(1099511627776L * 256 * 256)); - this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.Big.GetBytes(-1L)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, EndianBitConverter.Big.GetBytes(257L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(0L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(1L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(256L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(65536L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(16777216L)); + this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(4294967296L)); + this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(1099511627776L)); + this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(1099511627776L * 256)); + this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(1099511627776L * 256 * 256)); + this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(-1L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(257L)); } /// @@ -82,17 +82,17 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesULong() { - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(0UL)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.Big.GetBytes(1UL)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.Big.GetBytes(256UL)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.Big.GetBytes(65536UL)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(16777216UL)); - this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(4294967296UL)); - this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(1099511627776UL)); - this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(1099511627776UL * 256)); - this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Big.GetBytes(1099511627776UL * 256 * 256)); - this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.Big.GetBytes(ulong.MaxValue)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, EndianBitConverter.Big.GetBytes(257UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(0UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(1UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(256UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(65536UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(16777216UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(4294967296UL)); + this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(1099511627776UL)); + this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(1099511627776UL * 256)); + this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(1099511627776UL * 256 * 256)); + this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(ulong.MaxValue)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 1 }, EndianBitConverter.GetConverter(Endianness.BigEndian).GetBytes(257UL)); } /// diff --git a/tests/ImageSharp.Tests/IO/EndianBinaryReaderTests.cs b/tests/ImageSharp.Tests/IO/EndianBinaryReaderTests.cs index 3eed88c87a..ffd9cdedcc 100644 --- a/tests/ImageSharp.Tests/IO/EndianBinaryReaderTests.cs +++ b/tests/ImageSharp.Tests/IO/EndianBinaryReaderTests.cs @@ -35,7 +35,7 @@ namespace ImageSharp.Tests.IO public void ReadCharsBeyondInternalBufferSize() { MemoryStream stream = new MemoryStream(TestBytes); - using (EndianBinaryReader subject = new EndianBinaryReader(EndianBitConverter.Little, stream)) + using (EndianBinaryReader subject = new EndianBinaryReader(Endianness.LittleEndian, stream)) { char[] chars = new char[TestString.Length]; subject.Read(chars, 0, chars.Length); @@ -54,7 +54,7 @@ namespace ImageSharp.Tests.IO () => { MemoryStream stream = new MemoryStream(TestBytes); - using (EndianBinaryReader subject = new EndianBinaryReader(EndianBitConverter.Little, stream)) + using (EndianBinaryReader subject = new EndianBinaryReader(Endianness.LittleEndian, stream)) { char[] chars = new char[TestString.Length - 1]; diff --git a/tests/ImageSharp.Tests/IO/LittleEndianBitConverterTests.cs b/tests/ImageSharp.Tests/IO/LittleEndianBitConverterTests.cs index ebad96e062..fe76623063 100644 --- a/tests/ImageSharp.Tests/IO/LittleEndianBitConverterTests.cs +++ b/tests/ImageSharp.Tests/IO/LittleEndianBitConverterTests.cs @@ -20,11 +20,11 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesShort() { - this.CheckBytes(new byte[] { 0, 0 }, EndianBitConverter.Little.GetBytes((short)0)); - this.CheckBytes(new byte[] { 1, 0 }, EndianBitConverter.Little.GetBytes((short)1)); - this.CheckBytes(new byte[] { 0, 1 }, EndianBitConverter.Little.GetBytes((short)256)); - this.CheckBytes(new byte[] { 255, 255 }, EndianBitConverter.Little.GetBytes((short)-1)); - this.CheckBytes(new byte[] { 1, 1 }, EndianBitConverter.Little.GetBytes((short)257)); + this.CheckBytes(new byte[] { 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((short)0)); + this.CheckBytes(new byte[] { 1, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((short)1)); + this.CheckBytes(new byte[] { 0, 1 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((short)256)); + this.CheckBytes(new byte[] { 255, 255 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((short)-1)); + this.CheckBytes(new byte[] { 1, 1 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((short)257)); } /// @@ -33,13 +33,13 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesInt() { - this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes((int)0)); - this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.Little.GetBytes((int)1)); - this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.Little.GetBytes((int)256)); - this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.Little.GetBytes((int)65536)); - this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.Little.GetBytes((int)16777216)); - this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.Little.GetBytes((int)-1)); - this.CheckBytes(new byte[] { 1, 1, 0, 0 }, EndianBitConverter.Little.GetBytes((int)257)); + this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((int)0)); + this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((int)1)); + this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((int)256)); + this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((int)65536)); + this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((int)16777216)); + this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((int)-1)); + this.CheckBytes(new byte[] { 1, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((int)257)); } /// @@ -48,13 +48,13 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesUInt() { - this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes((uint)0)); - this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.Little.GetBytes((uint)1)); - this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.Little.GetBytes((uint)256)); - this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.Little.GetBytes((uint)65536)); - this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.Little.GetBytes((uint)16777216)); - this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.Little.GetBytes((uint)uint.MaxValue)); - this.CheckBytes(new byte[] { 1, 1, 0, 0 }, EndianBitConverter.Little.GetBytes((uint)257)); + this.CheckBytes(new byte[] { 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((uint)0)); + this.CheckBytes(new byte[] { 1, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((uint)1)); + this.CheckBytes(new byte[] { 0, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((uint)256)); + this.CheckBytes(new byte[] { 0, 0, 1, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((uint)65536)); + this.CheckBytes(new byte[] { 0, 0, 0, 1 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((uint)16777216)); + this.CheckBytes(new byte[] { 255, 255, 255, 255 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((uint)uint.MaxValue)); + this.CheckBytes(new byte[] { 1, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes((uint)257)); } /// @@ -63,17 +63,17 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesLong() { - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(0L)); - this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(1L)); - this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(256L)); - this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(65536L)); - this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(16777216L)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(4294967296L)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.Little.GetBytes(1099511627776L)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.Little.GetBytes(1099511627776L * 256)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.Little.GetBytes(1099511627776L * 256 * 256)); - this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.Little.GetBytes(-1L)); - this.CheckBytes(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(257L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(0L)); + this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(1L)); + this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(256L)); + this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(65536L)); + this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(16777216L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(4294967296L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(1099511627776L)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(1099511627776L * 256)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(1099511627776L * 256 * 256)); + this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(-1L)); + this.CheckBytes(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(257L)); } /// @@ -82,17 +82,17 @@ namespace ImageSharp.Tests.IO [Fact] public void GetBytesULong() { - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(0UL)); - this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(1UL)); - this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(256UL)); - this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(65536UL)); - this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(16777216UL)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(4294967296UL)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.Little.GetBytes(1099511627776UL)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.Little.GetBytes(1099511627776UL * 256)); - this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.Little.GetBytes(1099511627776UL * 256 * 256)); - this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.Little.GetBytes(ulong.MaxValue)); - this.CheckBytes(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.Little.GetBytes(257UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(0UL)); + this.CheckBytes(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(1UL)); + this.CheckBytes(new byte[] { 0, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(256UL)); + this.CheckBytes(new byte[] { 0, 0, 1, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(65536UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 1, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(16777216UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 1, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(4294967296UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 1, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(1099511627776UL)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 1, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(1099511627776UL * 256)); + this.CheckBytes(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(1099511627776UL * 256 * 256)); + this.CheckBytes(new byte[] { 255, 255, 255, 255, 255, 255, 255, 255 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(ulong.MaxValue)); + this.CheckBytes(new byte[] { 1, 1, 0, 0, 0, 0, 0, 0 }, EndianBitConverter.GetConverter(Endianness.LittleEndian).GetBytes(257UL)); } /// diff --git a/tests/ImageSharp.Tests/TestBase.cs b/tests/ImageSharp.Tests/TestBase.cs index 175bf215c4..391ed89ac4 100644 --- a/tests/ImageSharp.Tests/TestBase.cs +++ b/tests/ImageSharp.Tests/TestBase.cs @@ -6,12 +6,18 @@ namespace ImageSharp.Tests { using System.IO; + using ImageSharp.Formats; /// /// The test base class. Inherit from this class for any image manipulation tests. /// public abstract class TestBase { + protected TestBase() + { + Bootstrapper.Default.AddCommonFormats(); + } + /// /// Creates the image output directory. /// diff --git a/tests/ImageSharp.Tests/project.json b/tests/ImageSharp.Tests/project.json index d6bdcb7d6d..40ff653bf1 100644 --- a/tests/ImageSharp.Tests/project.json +++ b/tests/ImageSharp.Tests/project.json @@ -23,7 +23,8 @@ "ImageSharp": "1.0.0-*", "xunit": "2.2.0-*", "dotnet-test-xunit": "2.2.0-*", - "ImageSharp.Drawing": "1.0.0-*" + "ImageSharp.Drawing": "1.0.0-*", + "ImageSharp.Formats": "1.0.0-*" }, "frameworks": { "netcoreapp1.1": { From 754c272a9675f98c024e9ca499b28cd90153ec0f Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Fri, 30 Dec 2016 14:58:13 +0000 Subject: [PATCH 06/36] styelcop settings --- src/ImageSharp.Formats.Bmp/stylecop.json | 9 +++++++++ src/ImageSharp.Formats.Gif/stylecop.json | 9 +++++++++ src/ImageSharp.Formats.Jpeg/stylecop.json | 9 +++++++++ src/ImageSharp.Formats.Png/stylecop.json | 9 +++++++++ src/ImageSharp.Formats/stylecop.json | 9 +++++++++ 5 files changed, 45 insertions(+) create mode 100644 src/ImageSharp.Formats.Bmp/stylecop.json create mode 100644 src/ImageSharp.Formats.Gif/stylecop.json create mode 100644 src/ImageSharp.Formats.Jpeg/stylecop.json create mode 100644 src/ImageSharp.Formats.Png/stylecop.json create mode 100644 src/ImageSharp.Formats/stylecop.json diff --git a/src/ImageSharp.Formats.Bmp/stylecop.json b/src/ImageSharp.Formats.Bmp/stylecop.json new file mode 100644 index 0000000000..df8f120a5b --- /dev/null +++ b/src/ImageSharp.Formats.Bmp/stylecop.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "James Jackson-South", + "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." + } + } +} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Gif/stylecop.json b/src/ImageSharp.Formats.Gif/stylecop.json new file mode 100644 index 0000000000..df8f120a5b --- /dev/null +++ b/src/ImageSharp.Formats.Gif/stylecop.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "James Jackson-South", + "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." + } + } +} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Jpeg/stylecop.json b/src/ImageSharp.Formats.Jpeg/stylecop.json new file mode 100644 index 0000000000..df8f120a5b --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/stylecop.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "James Jackson-South", + "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." + } + } +} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Png/stylecop.json b/src/ImageSharp.Formats.Png/stylecop.json new file mode 100644 index 0000000000..df8f120a5b --- /dev/null +++ b/src/ImageSharp.Formats.Png/stylecop.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "James Jackson-South", + "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." + } + } +} \ No newline at end of file diff --git a/src/ImageSharp.Formats/stylecop.json b/src/ImageSharp.Formats/stylecop.json new file mode 100644 index 0000000000..df8f120a5b --- /dev/null +++ b/src/ImageSharp.Formats/stylecop.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "James Jackson-South", + "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." + } + } +} \ No newline at end of file From 44ded6657d961c9e535ee29669426faaba7bfd25 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Fri, 30 Dec 2016 15:51:25 +0000 Subject: [PATCH 07/36] fix net45 dependencies --- src/ImageSharp.Formats.Bmp/project.json | 4 +++- src/ImageSharp.Formats.Gif/project.json | 4 +++- src/ImageSharp.Formats.Jpeg/project.json | 4 +++- src/ImageSharp.Formats.Png/project.json | 4 +++- src/ImageSharp/project.json | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/ImageSharp.Formats.Bmp/project.json b/src/ImageSharp.Formats.Bmp/project.json index 8211a87aa8..d661464919 100644 --- a/src/ImageSharp.Formats.Bmp/project.json +++ b/src/ImageSharp.Formats.Bmp/project.json @@ -66,7 +66,9 @@ }, "net45": { "dependencies": { - "System.Runtime": "4.0.0" + "System.Runtime": "4.0.0", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" } } } diff --git a/src/ImageSharp.Formats.Gif/project.json b/src/ImageSharp.Formats.Gif/project.json index af54c6e748..304e932330 100644 --- a/src/ImageSharp.Formats.Gif/project.json +++ b/src/ImageSharp.Formats.Gif/project.json @@ -66,7 +66,9 @@ }, "net45": { "dependencies": { - "System.Runtime": "4.0.0" + "System.Runtime": "4.0.0", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" } } } diff --git a/src/ImageSharp.Formats.Jpeg/project.json b/src/ImageSharp.Formats.Jpeg/project.json index 685d009c3e..e1d3017550 100644 --- a/src/ImageSharp.Formats.Jpeg/project.json +++ b/src/ImageSharp.Formats.Jpeg/project.json @@ -66,7 +66,9 @@ }, "net45": { "dependencies": { - "System.Runtime": "4.0.0" + "System.Runtime": "4.0.0", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" } } } diff --git a/src/ImageSharp.Formats.Png/project.json b/src/ImageSharp.Formats.Png/project.json index 20998a2d43..b62248f0fa 100644 --- a/src/ImageSharp.Formats.Png/project.json +++ b/src/ImageSharp.Formats.Png/project.json @@ -66,7 +66,9 @@ }, "net45": { "dependencies": { - "System.Runtime": "4.0.0" + "System.Runtime": "4.0.0", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" } } } diff --git a/src/ImageSharp/project.json b/src/ImageSharp/project.json index 91cd277147..b8898f317c 100644 --- a/src/ImageSharp/project.json +++ b/src/ImageSharp/project.json @@ -65,7 +65,9 @@ }, "net45": { "dependencies": { - "System.Runtime": "4.0.0" + "System.Runtime": "4.0.0", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" } } } From 021db692243fae6b9c2b5b89c5fbd53554938b3a Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Fri, 30 Dec 2016 16:11:19 +0000 Subject: [PATCH 08/36] update version numbers --- src/ImageSharp.Drawing/project.json | 2 +- src/ImageSharp.Formats.Bmp/project.json | 2 +- src/ImageSharp.Formats.Gif/project.json | 2 +- src/ImageSharp.Formats.Jpeg/project.json | 2 +- src/ImageSharp.Formats.Png/project.json | 2 +- src/ImageSharp.Formats/project.json | 2 +- src/ImageSharp/project.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ImageSharp.Drawing/project.json b/src/ImageSharp.Drawing/project.json index 147044fb93..65501dfd7b 100644 --- a/src/ImageSharp.Drawing/project.json +++ b/src/ImageSharp.Drawing/project.json @@ -1,5 +1,5 @@ { - "version": "1.0.0-*", + "version": "1.0.0-alpha1-*", "title": "ImageSharp.Drawing", "description": "A cross-platform library for the processing of image files; written in C#", "authors": [ diff --git a/src/ImageSharp.Formats.Bmp/project.json b/src/ImageSharp.Formats.Bmp/project.json index d661464919..25ec1beb84 100644 --- a/src/ImageSharp.Formats.Bmp/project.json +++ b/src/ImageSharp.Formats.Bmp/project.json @@ -1,5 +1,5 @@ { - "version": "1.0.0-*", + "version": "1.0.0-alpha1-*", "title": "ImageSharp.Formats.Bmp", "description": "A cross-platform library for the processing of image files; written in C#", "authors": [ diff --git a/src/ImageSharp.Formats.Gif/project.json b/src/ImageSharp.Formats.Gif/project.json index 304e932330..05531ef295 100644 --- a/src/ImageSharp.Formats.Gif/project.json +++ b/src/ImageSharp.Formats.Gif/project.json @@ -1,5 +1,5 @@ { - "version": "1.0.0-*", + "version": "1.0.0-alpha1-*", "title": "ImageSharp.Formats.Gif", "description": "A cross-platform library for the processing of image files; written in C#", "authors": [ diff --git a/src/ImageSharp.Formats.Jpeg/project.json b/src/ImageSharp.Formats.Jpeg/project.json index e1d3017550..48893fbb2d 100644 --- a/src/ImageSharp.Formats.Jpeg/project.json +++ b/src/ImageSharp.Formats.Jpeg/project.json @@ -1,5 +1,5 @@ { - "version": "1.0.0-*", + "version": "1.0.0-alpha1-*", "title": "ImageSharp.Formats.Jpeg", "description": "A cross-platform library for the processing of image files; written in C#", "authors": [ diff --git a/src/ImageSharp.Formats.Png/project.json b/src/ImageSharp.Formats.Png/project.json index b62248f0fa..50e9b91da4 100644 --- a/src/ImageSharp.Formats.Png/project.json +++ b/src/ImageSharp.Formats.Png/project.json @@ -1,5 +1,5 @@ { - "version": "1.0.0-*", + "version": "1.0.0-alpha1-*", "title": "ImageSharp.Formats", "description": "A cross-platform library for the processing of image files; written in C#", "authors": [ diff --git a/src/ImageSharp.Formats/project.json b/src/ImageSharp.Formats/project.json index 37d1b25443..6eae3985a5 100644 --- a/src/ImageSharp.Formats/project.json +++ b/src/ImageSharp.Formats/project.json @@ -1,5 +1,5 @@ { - "version": "1.0.0-*", + "version": "1.0.0-alpha1-*", "title": "ImageSharp.Formats", "description": "A cross-platform library for the processing of image files; written in C#", "authors": [ diff --git a/src/ImageSharp/project.json b/src/ImageSharp/project.json index b8898f317c..5efd1fdb24 100644 --- a/src/ImageSharp/project.json +++ b/src/ImageSharp/project.json @@ -1,5 +1,5 @@ { - "version": "1.0.0-*", + "version": "1.0.0-alpha1-*", "title": "ImageSharp", "description": "A cross-platform library for the processing of image files; written in C#", "authors": [ From b0985ddb0e464691854289516c39134a40a5ac4b Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Fri, 30 Dec 2016 17:11:18 +0000 Subject: [PATCH 09/36] migrate processors --- ImageSharp.sln | 7 + src/ImageSharp.Drawing/Draw.cs | 6 +- src/ImageSharp.Drawing/DrawImage.cs | 4 +- src/ImageSharp.Drawing/DrawRectangle.cs | 2 +- src/ImageSharp.Drawing/Fill.cs | 6 +- src/ImageSharp.Drawing/FillRectangle.cs | 4 +- .../Processors/DrawImageProcessor.cs | 4 +- .../Processors/DrawPathProcessor.cs | 4 +- .../Processors/FillProcessor.cs | 2 +- .../Processors/FillShapeProcessor.cs | 4 +- src/ImageSharp.Drawing/project.json | 9 +- src/ImageSharp.Formats.Bmp/project.json | 5 +- src/ImageSharp.Formats.Gif/project.json | 5 +- src/ImageSharp.Formats.Jpeg/project.json | 5 +- src/ImageSharp.Formats.Png/project.json | 5 +- src/ImageSharp.Formats/project.json | 25 +- .../Binarization/BinaryThreshold.cs | 4 +- .../Binarization/BinaryThresholdProcessor.cs | 2 +- .../ColorMatrix/BlackWhite.cs | 4 +- .../ColorMatrix/BlackWhiteProcessor.cs | 2 +- .../ColorMatrix/ColorBlindness.cs | 4 +- .../ColorBlindness/AchromatomalyProcessor.cs | 2 +- .../ColorBlindness/AchromatopsiaProcessor.cs | 2 +- .../ColorBlindness/DeuteranomalyProcessor.cs | 2 +- .../ColorBlindness/DeuteranopiaProcessor.cs | 2 +- .../ColorBlindness/ProtanomalyProcessor.cs | 2 +- .../ColorBlindness/ProtanopiaProcessor.cs | 2 +- .../ColorMatrix/ColorBlindness/README.md | 0 .../ColorBlindness/TritanomalyProcessor.cs | 2 +- .../ColorBlindness/TritanopiaProcessor.cs | 2 +- .../ColorMatrix/ColorMatrixFilter.cs | 2 +- .../ColorMatrix/Grayscale.cs | 4 +- .../ColorMatrix/GrayscaleBt601Processor.cs | 2 +- .../ColorMatrix/GrayscaleBt709Processor.cs | 2 +- .../ColorMatrix/Hue.cs | 4 +- .../ColorMatrix/HueProcessor.cs | 2 +- .../ColorMatrix/IColorMatrixFilter.cs | 2 +- .../ColorMatrix/Kodachrome.cs | 4 +- .../ColorMatrix/KodachromeProcessor.cs | 2 +- .../ColorMatrix/Lomograph.cs | 4 +- .../ColorMatrix/LomographProcessor.cs | 2 +- .../ColorMatrix/Options/ColorBlindness.cs | 0 .../ColorMatrix/Options/GrayscaleMode.cs | 0 .../ColorMatrix/Polaroid.cs | 4 +- .../ColorMatrix/PolaroidProcessor.cs | 2 +- .../ColorMatrix/Saturation.cs | 4 +- .../ColorMatrix/SaturationProcessor.cs | 2 +- .../ColorMatrix/Sepia.cs | 4 +- .../ColorMatrix/SepiaProcessor.cs | 2 +- .../ComparableExtensions.cs | 182 +++++++++++ src/ImageSharp.Processing/Constants.cs | 18 ++ .../Convolution/BoxBlur.cs | 4 +- .../Convolution/BoxBlurProcessor.cs | 2 +- .../Convolution/Convolution2DProcessor.cs | 2 +- .../Convolution/Convolution2PassProcessor.cs | 2 +- .../Convolution/ConvolutionProcessor.cs | 2 +- .../Convolution/DetectEdges.cs | 4 +- .../EdgeDetection/EdgeDetector2DProcessor.cs | 2 +- .../EdgeDetectorCompassProcessor.cs | 2 +- .../EdgeDetection/EdgeDetectorProcessor.cs | 2 +- .../EdgeDetection/IEdgeDetectorProcessor.cs | 2 +- .../EdgeDetection/KayyaliProcessor.cs | 2 +- .../EdgeDetection/KirschProcessor.cs | 2 +- .../EdgeDetection/Laplacian3X3Processor.cs | 2 +- .../EdgeDetection/Laplacian5X5Processor.cs | 2 +- .../LaplacianOfGaussianProcessor.cs | 2 +- .../EdgeDetection/PrewittProcessor.cs | 2 +- .../EdgeDetection/RobertsCrossProcessor.cs | 2 +- .../EdgeDetection/RobinsonProcessor.cs | 2 +- .../EdgeDetection/ScharrProcessor.cs | 2 +- .../EdgeDetection/SobelProcessor.cs | 2 +- .../Convolution/GaussianBlur.cs | 4 +- .../Convolution/GaussianBlurProcessor.cs | 2 +- .../Convolution/GaussianSharpen.cs | 4 +- .../Convolution/GaussianSharpenProcessor.cs | 2 +- .../Convolution/Options/EdgeDetection.cs | 0 .../Effects/Alpha.cs | 4 +- .../Effects/AlphaProcessor.cs | 2 +- .../Effects/BackgroundColor.cs | 4 +- .../Effects/BackgroundColorProcessor.cs | 2 +- .../Effects/Brightness.cs | 4 +- .../Effects/BrightnessProcessor.cs | 2 +- .../Effects/Contrast.cs | 4 +- .../Effects/ContrastProcessor.cs | 2 +- .../Effects/Invert.cs | 4 +- .../Effects/InvertProcessor.cs | 2 +- .../Effects/OilPainting.cs | 4 +- .../Effects/OilPaintingProcessor.cs | 2 +- .../Effects/Pixelate.cs | 4 +- .../Effects/PixelateProcessor.cs | 2 +- src/ImageSharp.Processing/ImageMaths.cs | 286 ++++++++++++++++++ .../ImageSharp.Processing.xproj | 25 ++ .../Overlays/Glow.cs | 4 +- .../Overlays/GlowProcessor.cs | 2 +- .../Overlays/Vignette.cs | 4 +- .../Overlays/VignetteProcessor.cs | 2 +- .../Properties/AssemblyInfo.cs | 41 +++ .../Transforms/AutoOrient.cs | 1 + .../Transforms/CompandingResizeProcessor.cs | 2 +- .../Transforms/Crop.cs | 4 +- .../Transforms/CropProcessor.cs | 2 +- .../Transforms/EntropyCrop.cs | 4 +- .../Transforms/EntropyCropProcessor.cs | 2 +- .../Transforms/Flip.cs | 4 +- .../Transforms/FlipProcessor.cs | 2 +- .../Transforms/Matrix3x2Processor.cs | 2 +- .../Transforms/Options/AnchorPosition.cs | 2 +- .../Transforms/Options/FlipType.cs | 2 +- .../Transforms/Options/Orientation.cs | 2 +- .../Transforms/Options/ResizeHelper.cs | 2 +- .../Transforms/Options/ResizeMode.cs | 2 +- .../Transforms/Options/ResizeOptions.cs | 2 +- .../Transforms/Options/RotateType.cs | 2 +- .../Transforms/Pad.cs | 1 + .../Transforms/Resamplers/BicubicResampler.cs | 2 +- .../Transforms/Resamplers/BoxResampler.cs | 2 +- .../Resamplers/CatmullRomResampler.cs | 2 +- .../Transforms/Resamplers/HermiteResampler.cs | 2 +- .../Transforms/Resamplers/IResampler.cs | 2 +- .../Resamplers/Lanczos2Resampler.cs | 2 +- .../Resamplers/Lanczos3Resampler.cs | 2 +- .../Resamplers/Lanczos5Resampler.cs | 2 +- .../Resamplers/Lanczos8Resampler.cs | 2 +- .../Resamplers/MitchellNetravaliResampler.cs | 2 +- .../Resamplers/NearestNeighborResampler.cs | 2 +- .../Resamplers/RobidouxResampler.cs | 2 +- .../Resamplers/RobidouxSharpResampler.cs | 2 +- .../Transforms/Resamplers/SplineResampler.cs | 2 +- .../Resamplers/TriangleResampler.cs | 2 +- .../Transforms/Resamplers/WelchResampler.cs | 2 +- .../Transforms/ResamplingWeightedProcessor.cs | 2 +- .../Transforms/Resize.cs | 4 +- .../Transforms/ResizeProcessor.cs | 2 +- .../Transforms/Rotate.cs | 4 +- .../Transforms/RotateFlip.cs | 1 + .../Transforms/RotateProcessor.cs | 2 +- .../Transforms/Skew.cs | 4 +- .../Transforms/SkewProcessor.cs | 2 +- src/ImageSharp.Processing/project.json | 78 +++++ src/ImageSharp/Image/IImageProcessor.cs | 2 +- .../Image/ImageProcessingExtensions.cs | 8 +- src/ImageSharp/ImageProcessor.cs | 2 +- tests/ImageSharp.Benchmarks/project.json | 19 +- .../Processors/Filters/AutoOrientTests.cs | 1 + .../Processors/Filters/FlipTests.cs | 2 +- .../Processors/Filters/GrayscaleTest.cs | 1 - .../Processors/Filters/ResizeTests.cs | 2 +- .../Processors/Filters/RotateFlipTest.cs | 2 +- .../Processors/Filters/RotateTest.cs | 2 +- tests/ImageSharp.Tests/project.json | 19 +- 150 files changed, 885 insertions(+), 183 deletions(-) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Binarization/BinaryThreshold.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Binarization/BinaryThresholdProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/BlackWhite.cs (93%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/BlackWhiteProcessor.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/ColorBlindness.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorBlindness/README.md (100%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/ColorMatrixFilter.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/Grayscale.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/GrayscaleBt601Processor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/GrayscaleBt709Processor.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/Hue.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/HueProcessor.cs (98%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/IColorMatrixFilter.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/Kodachrome.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/KodachromeProcessor.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/Lomograph.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/LomographProcessor.cs (97%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/Options/ColorBlindness.cs (100%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/Options/GrayscaleMode.cs (100%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/Polaroid.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/PolaroidProcessor.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/Saturation.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/SaturationProcessor.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/ColorMatrix/Sepia.cs (93%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/ColorMatrix/SepiaProcessor.cs (97%) create mode 100644 src/ImageSharp.Processing/ComparableExtensions.cs create mode 100644 src/ImageSharp.Processing/Constants.cs rename src/{ImageSharp/Filters => ImageSharp.Processing}/Convolution/BoxBlur.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/BoxBlurProcessor.cs (98%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/Convolution2DProcessor.cs (99%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/Convolution2PassProcessor.cs (99%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/ConvolutionProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Convolution/DetectEdges.cs (98%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs (99%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/EdgeDetectorProcessor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/KayyaliProcessor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/KirschProcessor.cs (99%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/Laplacian3X3Processor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/Laplacian5X5Processor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/PrewittProcessor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/RobertsCrossProcessor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/RobinsonProcessor.cs (99%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/ScharrProcessor.cs (97%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/EdgeDetection/SobelProcessor.cs (97%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Convolution/GaussianBlur.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/GaussianBlurProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Convolution/GaussianSharpen.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Convolution/GaussianSharpenProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Convolution/Options/EdgeDetection.cs (100%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Effects/Alpha.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Effects/AlphaProcessor.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Effects/BackgroundColor.cs (89%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Effects/BackgroundColorProcessor.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Effects/Brightness.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Effects/BrightnessProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Effects/Contrast.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Effects/ContrastProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Effects/Invert.cs (93%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Effects/InvertProcessor.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Effects/OilPainting.cs (95%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Effects/OilPaintingProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Effects/Pixelate.cs (94%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Effects/PixelateProcessor.cs (99%) create mode 100644 src/ImageSharp.Processing/ImageMaths.cs create mode 100644 src/ImageSharp.Processing/ImageSharp.Processing.xproj rename src/{ImageSharp/Filters => ImageSharp.Processing}/Overlays/Glow.cs (98%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Overlays/GlowProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Overlays/Vignette.cs (98%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Overlays/VignetteProcessor.cs (99%) create mode 100644 src/ImageSharp.Processing/Properties/AssemblyInfo.cs rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/AutoOrient.cs (99%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Transforms/CompandingResizeProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Crop.cs (95%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Transforms/CropProcessor.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/EntropyCrop.cs (92%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Transforms/EntropyCropProcessor.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Flip.cs (92%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Transforms/FlipProcessor.cs (99%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Transforms/Matrix3x2Processor.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Options/AnchorPosition.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Options/FlipType.cs (95%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Options/Orientation.cs (97%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Options/ResizeHelper.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Options/ResizeMode.cs (97%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Options/ResizeOptions.cs (97%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Options/RotateType.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Pad.cs (98%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/BicubicResampler.cs (97%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/BoxResampler.cs (95%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/CatmullRomResampler.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/HermiteResampler.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/IResampler.cs (95%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/Lanczos2Resampler.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/Lanczos3Resampler.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/Lanczos5Resampler.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/Lanczos8Resampler.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/MitchellNetravaliResampler.cs (95%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/NearestNeighborResampler.cs (95%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/RobidouxResampler.cs (95%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/RobidouxSharpResampler.cs (95%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/SplineResampler.cs (95%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/TriangleResampler.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resamplers/WelchResampler.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Transforms/ResamplingWeightedProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Resize.cs (98%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Transforms/ResizeProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Rotate.cs (96%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/RotateFlip.cs (98%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Transforms/RotateProcessor.cs (99%) rename src/{ImageSharp/Filters => ImageSharp.Processing}/Transforms/Skew.cs (96%) rename src/{ImageSharp/Filters/Processors => ImageSharp.Processing}/Transforms/SkewProcessor.cs (98%) create mode 100644 src/ImageSharp.Processing/project.json diff --git a/ImageSharp.sln b/ImageSharp.sln index 9f22d8d866..c4abf1ae0a 100644 --- a/ImageSharp.sln +++ b/ImageSharp.sln @@ -49,6 +49,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Jpeg", " EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Png", "src\ImageSharp.Formats.Png\ImageSharp.Formats.Png.xproj", "{556ABDCF-ED93-4327-BE98-F6815F78B9B8}" EndProject +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Processing", "src\ImageSharp.Processing\ImageSharp.Processing.xproj", "{A623CFE9-9D2B-4528-AD1F-2E834B061134}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -95,6 +97,10 @@ Global {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {556ABDCF-ED93-4327-BE98-F6815F78B9B8}.Release|Any CPU.Build.0 = Release|Any CPU + {A623CFE9-9D2B-4528-AD1F-2E834B061134}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A623CFE9-9D2B-4528-AD1F-2E834B061134}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A623CFE9-9D2B-4528-AD1F-2E834B061134}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A623CFE9-9D2B-4528-AD1F-2E834B061134}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -110,5 +116,6 @@ Global {27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {7213767C-0003-41CA-AB18-0223CFA7CE4B} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {556ABDCF-ED93-4327-BE98-F6815F78B9B8} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {A623CFE9-9D2B-4528-AD1F-2E834B061134} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} EndGlobalSection EndGlobal diff --git a/src/ImageSharp.Drawing/Draw.cs b/src/ImageSharp.Drawing/Draw.cs index 14f3db44d4..c10665b832 100644 --- a/src/ImageSharp.Drawing/Draw.cs +++ b/src/ImageSharp.Drawing/Draw.cs @@ -33,7 +33,7 @@ namespace ImageSharp public static Image DrawPolygon(this Image source, IPen pen, IShape shape, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new DrawPathProcessor(pen, shape, options)); + return source.Apply(new DrawPathProcessor(pen, shape, options)); } /// @@ -227,7 +227,7 @@ namespace ImageSharp public static Image DrawPath(this Image source, IPen pen, IPath path, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new DrawPathProcessor(pen, path, options)); + return source.Apply(new DrawPathProcessor(pen, path, options)); } /// @@ -241,7 +241,7 @@ namespace ImageSharp public static Image DrawPath(this Image source, IPen pen, IPath path) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new DrawPathProcessor(pen, path, GraphicsOptions.Default)); + return source.Apply(new DrawPathProcessor(pen, path, GraphicsOptions.Default)); } /// diff --git a/src/ImageSharp.Drawing/DrawImage.cs b/src/ImageSharp.Drawing/DrawImage.cs index db9d01153d..4b3fd491da 100644 --- a/src/ImageSharp.Drawing/DrawImage.cs +++ b/src/ImageSharp.Drawing/DrawImage.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Drawing.Processors; /// /// Extension methods for the type. @@ -51,7 +51,7 @@ namespace ImageSharp location = Point.Empty; } - return source.Process(source.Bounds, new DrawImageProcessor(image, size, location, percent)); + return source.Apply(source.Bounds, new DrawImageProcessor(image, size, location, percent)); } } } \ No newline at end of file diff --git a/src/ImageSharp.Drawing/DrawRectangle.cs b/src/ImageSharp.Drawing/DrawRectangle.cs index 8b1cd03e8c..38ed578b65 100644 --- a/src/ImageSharp.Drawing/DrawRectangle.cs +++ b/src/ImageSharp.Drawing/DrawRectangle.cs @@ -33,7 +33,7 @@ namespace ImageSharp public static Image DrawPolygon(this Image source, IPen pen, RectangleF shape, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new DrawPathProcessor(pen, (IPath)new RectangularPolygon(shape), options)); + return source.Apply(new DrawPathProcessor(pen, (IPath)new RectangularPolygon(shape), options)); } /// diff --git a/src/ImageSharp.Drawing/Fill.cs b/src/ImageSharp.Drawing/Fill.cs index abf4310aab..c0f43bdd18 100644 --- a/src/ImageSharp.Drawing/Fill.cs +++ b/src/ImageSharp.Drawing/Fill.cs @@ -28,7 +28,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillProcessor(brush)); + return source.Apply(new FillProcessor(brush)); } /// @@ -56,7 +56,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush, IShape shape, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillShapeProcessor(brush, shape, options)); + return source.Apply(new FillShapeProcessor(brush, shape, options)); } /// @@ -70,7 +70,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush, IShape shape) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillShapeProcessor(brush, shape, GraphicsOptions.Default)); + return source.Apply(new FillShapeProcessor(brush, shape, GraphicsOptions.Default)); } /// diff --git a/src/ImageSharp.Drawing/FillRectangle.cs b/src/ImageSharp.Drawing/FillRectangle.cs index fc29cb4eb2..d29b58e1b8 100644 --- a/src/ImageSharp.Drawing/FillRectangle.cs +++ b/src/ImageSharp.Drawing/FillRectangle.cs @@ -31,7 +31,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush, RectangleF shape, GraphicsOptions options) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillShapeProcessor(brush, new RectangularPolygon(shape), options)); + return source.Apply(new FillShapeProcessor(brush, new RectangularPolygon(shape), options)); } /// @@ -45,7 +45,7 @@ namespace ImageSharp public static Image Fill(this Image source, IBrush brush, RectangleF shape) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(new FillShapeProcessor(brush, new RectangularPolygon(shape), GraphicsOptions.Default)); + return source.Apply(new FillShapeProcessor(brush, new RectangularPolygon(shape), GraphicsOptions.Default)); } /// diff --git a/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs index 535635a45a..53a94d499f 100644 --- a/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs @@ -3,11 +3,12 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Drawing.Processors { using System; using System.Numerics; using System.Threading.Tasks; + using Processing; /// /// Combines two images together by blending the pixels. @@ -57,6 +58,7 @@ namespace ImageSharp.Processors { if (this.Image.Bounds.Size != this.Size) { + // should Resize be moved to core? this.Image = this.Image.Resize(this.Size.Width, this.Size.Height); } diff --git a/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs index a472b6fe6b..150f0c4856 100644 --- a/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs @@ -9,7 +9,7 @@ namespace ImageSharp.Drawing.Processors using System.Linq; using System.Numerics; using System.Threading.Tasks; - using ImageSharp.Processors; + using ImageSharp.Processing; using Paths; using Pens; using Pens.Processors; @@ -20,7 +20,7 @@ namespace ImageSharp.Drawing.Processors /// Draws a path using the processor pipeline /// /// The type of the color. - /// + /// public class DrawPathProcessor : ImageProcessor where TColor : struct, IPackedPixel, IEquatable { diff --git a/src/ImageSharp.Drawing/Processors/FillProcessor.cs b/src/ImageSharp.Drawing/Processors/FillProcessor.cs index 9a44fc2abc..309d3670f5 100644 --- a/src/ImageSharp.Drawing/Processors/FillProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/FillProcessor.cs @@ -10,7 +10,7 @@ namespace ImageSharp.Drawing.Processors using System.Threading.Tasks; using Drawing; - using ImageSharp.Processors; + using ImageSharp.Processing; /// /// Using the bursh as a source of pixels colors blends the brush color with source. diff --git a/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs b/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs index 078cffe347..d0655341b7 100644 --- a/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs @@ -9,7 +9,7 @@ namespace ImageSharp.Drawing.Processors using System.Numerics; using System.Threading.Tasks; using Drawing; - using ImageSharp.Processors; + using ImageSharp.Processing; using Shapes; using Rectangle = ImageSharp.Rectangle; @@ -17,7 +17,7 @@ namespace ImageSharp.Drawing.Processors /// Usinf a brsuh and a shape fills shape with contents of brush the /// /// The type of the color. - /// + /// public class FillShapeProcessor : ImageProcessor where TColor : struct, IPackedPixel, IEquatable { diff --git a/src/ImageSharp.Drawing/project.json b/src/ImageSharp.Drawing/project.json index 65501dfd7b..1a0512981f 100644 --- a/src/ImageSharp.Drawing/project.json +++ b/src/ImageSharp.Drawing/project.json @@ -37,7 +37,14 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Processing": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.0.0", "type": "build" diff --git a/src/ImageSharp.Formats.Bmp/project.json b/src/ImageSharp.Formats.Bmp/project.json index 25ec1beb84..9c5da69b6c 100644 --- a/src/ImageSharp.Formats.Bmp/project.json +++ b/src/ImageSharp.Formats.Bmp/project.json @@ -35,7 +35,10 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp.Formats.Gif/project.json b/src/ImageSharp.Formats.Gif/project.json index 05531ef295..90db84c5c5 100644 --- a/src/ImageSharp.Formats.Gif/project.json +++ b/src/ImageSharp.Formats.Gif/project.json @@ -35,7 +35,10 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp.Formats.Jpeg/project.json b/src/ImageSharp.Formats.Jpeg/project.json index 48893fbb2d..6ca42be0d6 100644 --- a/src/ImageSharp.Formats.Jpeg/project.json +++ b/src/ImageSharp.Formats.Jpeg/project.json @@ -35,7 +35,10 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp.Formats.Png/project.json b/src/ImageSharp.Formats.Png/project.json index 50e9b91da4..097bce1c15 100644 --- a/src/ImageSharp.Formats.Png/project.json +++ b/src/ImageSharp.Formats.Png/project.json @@ -35,7 +35,10 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp.Formats/project.json b/src/ImageSharp.Formats/project.json index 6eae3985a5..a2e2040015 100644 --- a/src/ImageSharp.Formats/project.json +++ b/src/ImageSharp.Formats/project.json @@ -35,11 +35,26 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", - "ImageSharp.Formats.Png": "1.0.0-*", - "ImageSharp.Formats.Bmp": "1.0.0-*", - "ImageSharp.Formats.Jpeg": "1.0.0-*", - "ImageSharp.Formats.Gif": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Formats.Png": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Formats.Bmp": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Formats.Jpeg": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, + "ImageSharp.Formats.Gif": { + "target": "project", + "version": "1.0.0-alpha1-*" + }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", "type": "build" diff --git a/src/ImageSharp/Filters/Binarization/BinaryThreshold.cs b/src/ImageSharp.Processing/Binarization/BinaryThreshold.cs similarity index 94% rename from src/ImageSharp/Filters/Binarization/BinaryThreshold.cs rename to src/ImageSharp.Processing/Binarization/BinaryThreshold.cs index ebf28357a2..e72a854209 100644 --- a/src/ImageSharp/Filters/Binarization/BinaryThreshold.cs +++ b/src/ImageSharp.Processing/Binarization/BinaryThreshold.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image BinaryThreshold(this Image source, float threshold, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new BinaryThresholdProcessor(threshold)); + return source.Apply(rectangle, new BinaryThresholdProcessor(threshold)); } } } diff --git a/src/ImageSharp/Filters/Processors/Binarization/BinaryThresholdProcessor.cs b/src/ImageSharp.Processing/Binarization/BinaryThresholdProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Binarization/BinaryThresholdProcessor.cs rename to src/ImageSharp.Processing/Binarization/BinaryThresholdProcessor.cs index 8a042c3596..9b31b41b72 100644 --- a/src/ImageSharp/Filters/Processors/Binarization/BinaryThresholdProcessor.cs +++ b/src/ImageSharp.Processing/Binarization/BinaryThresholdProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Filters/ColorMatrix/BlackWhite.cs b/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs similarity index 93% rename from src/ImageSharp/Filters/ColorMatrix/BlackWhite.cs rename to src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs index a0be4d9126..bcf104de41 100644 --- a/src/ImageSharp/Filters/ColorMatrix/BlackWhite.cs +++ b/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image BlackWhite(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new BlackWhiteProcessor()); + return source.Apply(rectangle, new BlackWhiteProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/BlackWhiteProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/BlackWhiteProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/BlackWhiteProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/BlackWhiteProcessor.cs index 942be785cf..81869437a8 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/BlackWhiteProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/BlackWhiteProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/ColorBlindness.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs similarity index 97% rename from src/ImageSharp/Filters/ColorMatrix/ColorBlindness.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs index d0c61bd739..208530616e 100644 --- a/src/ImageSharp/Filters/ColorMatrix/ColorBlindness.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -77,7 +77,7 @@ namespace ImageSharp break; } - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs index 2b8ca88573..bb768e9a6b 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs index d9530ad268..790552a0d9 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs index 84e185b40f..edde7a56bd 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs index 026fd2832c..e3490c76b1 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs index 92f4fc1f86..0083cf17f1 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs index 3c92813428..7974b6104a 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/README.md b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/README.md similarity index 100% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/README.md rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/README.md diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs index cde693c42f..4123c847cd 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs index eb47c61c21..5fdb94562f 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs b/src/ImageSharp.Processing/ColorMatrix/ColorMatrixFilter.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorMatrixFilter.cs index 67f9525f74..0c46fa0107 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorMatrixFilter.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Grayscale.cs b/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs similarity index 96% rename from src/ImageSharp/Filters/ColorMatrix/Grayscale.cs rename to src/ImageSharp.Processing/ColorMatrix/Grayscale.cs index d98ce27b9a..a703a08f81 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Grayscale.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -44,7 +44,7 @@ namespace ImageSharp ? (IImageProcessor)new GrayscaleBt709Processor() : new GrayscaleBt601Processor(); - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt601Processor.cs b/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt601Processor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt601Processor.cs rename to src/ImageSharp.Processing/ColorMatrix/GrayscaleBt601Processor.cs index b3e30f04e1..1a43cbdf2a 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt601Processor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt601Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt709Processor.cs b/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt709Processor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt709Processor.cs rename to src/ImageSharp.Processing/ColorMatrix/GrayscaleBt709Processor.cs index 24801b901f..e210777624 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt709Processor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt709Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Hue.cs b/src/ImageSharp.Processing/ColorMatrix/Hue.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Hue.cs rename to src/ImageSharp.Processing/ColorMatrix/Hue.cs index 52e7d19b8f..23fc59b446 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Hue.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Hue.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Hue(this Image source, float degrees, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new HueProcessor(degrees)); + return source.Apply(rectangle, new HueProcessor(degrees)); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/HueProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/HueProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/HueProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/HueProcessor.cs index a1de8eb0c9..910e534402 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/HueProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/HueProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/IColorMatrixFilter.cs b/src/ImageSharp.Processing/ColorMatrix/IColorMatrixFilter.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/IColorMatrixFilter.cs rename to src/ImageSharp.Processing/ColorMatrix/IColorMatrixFilter.cs index 295a0d9720..102688c92b 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/IColorMatrixFilter.cs +++ b/src/ImageSharp.Processing/ColorMatrix/IColorMatrixFilter.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Kodachrome.cs b/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Kodachrome.cs rename to src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs index 6f249f3cda..127aacc8bb 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Kodachrome.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Kodachrome(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new KodachromeProcessor()); + return source.Apply(rectangle, new KodachromeProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/KodachromeProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/KodachromeProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/KodachromeProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/KodachromeProcessor.cs index 60b6a1d20b..061f7b8a05 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/KodachromeProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/KodachromeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Lomograph.cs b/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Lomograph.cs rename to src/ImageSharp.Processing/ColorMatrix/Lomograph.cs index 06ba764103..1e8eabd462 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Lomograph.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Lomograph(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new LomographProcessor()); + return source.Apply(rectangle, new LomographProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/LomographProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/LomographProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/ColorMatrix/LomographProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/LomographProcessor.cs index d58e588be2..dd68705312 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/LomographProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/LomographProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Options/ColorBlindness.cs b/src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs similarity index 100% rename from src/ImageSharp/Filters/ColorMatrix/Options/ColorBlindness.cs rename to src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs diff --git a/src/ImageSharp/Filters/ColorMatrix/Options/GrayscaleMode.cs b/src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs similarity index 100% rename from src/ImageSharp/Filters/ColorMatrix/Options/GrayscaleMode.cs rename to src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs diff --git a/src/ImageSharp/Filters/ColorMatrix/Polaroid.cs b/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Polaroid.cs rename to src/ImageSharp.Processing/ColorMatrix/Polaroid.cs index 5df58cea97..3b2c672243 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Polaroid.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Polaroid(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new PolaroidProcessor()); + return source.Apply(rectangle, new PolaroidProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/PolaroidProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/PolaroidProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/PolaroidProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/PolaroidProcessor.cs index 73bc18e49f..679f9051fd 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/PolaroidProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/PolaroidProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Saturation.cs b/src/ImageSharp.Processing/ColorMatrix/Saturation.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Saturation.cs rename to src/ImageSharp.Processing/ColorMatrix/Saturation.cs index 101a45eab7..fb2c49188d 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Saturation.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Saturation.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Saturation(this Image source, int amount, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new SaturationProcessor(amount)); + return source.Apply(rectangle, new SaturationProcessor(amount)); } } } diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/SaturationProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/SaturationProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/SaturationProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/SaturationProcessor.cs index 71bb49c922..7b1f0fd298 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/SaturationProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/SaturationProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/ColorMatrix/Sepia.cs b/src/ImageSharp.Processing/ColorMatrix/Sepia.cs similarity index 93% rename from src/ImageSharp/Filters/ColorMatrix/Sepia.cs rename to src/ImageSharp.Processing/ColorMatrix/Sepia.cs index a3641bfe30..59f2bdded9 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Sepia.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Sepia.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Sepia(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new SepiaProcessor()); + return source.Apply(rectangle, new SepiaProcessor()); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/SepiaProcessor.cs b/src/ImageSharp.Processing/ColorMatrix/SepiaProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/ColorMatrix/SepiaProcessor.cs rename to src/ImageSharp.Processing/ColorMatrix/SepiaProcessor.cs index 8353cfa0be..ecab1c479c 100644 --- a/src/ImageSharp/Filters/Processors/ColorMatrix/SepiaProcessor.cs +++ b/src/ImageSharp.Processing/ColorMatrix/SepiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ComparableExtensions.cs b/src/ImageSharp.Processing/ComparableExtensions.cs new file mode 100644 index 0000000000..4512e98b73 --- /dev/null +++ b/src/ImageSharp.Processing/ComparableExtensions.cs @@ -0,0 +1,182 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Processing +{ + using System; + + /// + /// Extension methods for classes that implement . + /// + internal static class ComparableExtensions + { + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static byte Clamp(this byte value, byte min, byte max) + { + // Order is important here as someone might set min to higher than max. + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static uint Clamp(this uint value, uint min, uint max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static int Clamp(this int value, int min, int max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static float Clamp(this float value, float min, float max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Restricts a to be within a specified range. + /// + /// The The value to clamp. + /// The minimum value. If value is less than min, min will be returned. + /// The maximum value. If value is greater than max, max will be returned. + /// + /// The representing the clamped value. + /// + public static double Clamp(this double value, double min, double max) + { + if (value > max) + { + return max; + } + + if (value < min) + { + return min; + } + + return value; + } + + /// + /// Converts an to a first restricting the value between the + /// minimum and maximum allowable ranges. + /// + /// The this method extends. + /// The + public static byte ToByte(this int value) + { + return (byte)value.Clamp(0, 255); + } + + /// + /// Converts an to a first restricting the value between the + /// minimum and maximum allowable ranges. + /// + /// The this method extends. + /// The + public static byte ToByte(this float value) + { + return (byte)value.Clamp(0, 255); + } + + /// + /// Converts an to a first restricting the value between the + /// minimum and maximum allowable ranges. + /// + /// The this method extends. + /// The + public static byte ToByte(this double value) + { + return (byte)value.Clamp(0, 255); + } + + /// + /// Swaps the references to two objects in memory. + /// + /// The first reference. + /// The second reference. + /// The type of object. + public static void Swap(ref T first, ref T second) + { + T temp = second; + second = first; + first = temp; + } + } +} diff --git a/src/ImageSharp.Processing/Constants.cs b/src/ImageSharp.Processing/Constants.cs new file mode 100644 index 0000000000..0071471a78 --- /dev/null +++ b/src/ImageSharp.Processing/Constants.cs @@ -0,0 +1,18 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Processing +{ + /// + /// Common constants used throughout the project + /// + internal static class Constants + { + /// + /// The epsilon for comparing floating point numbers. + /// + public static readonly float Epsilon = 0.001f; + } +} diff --git a/src/ImageSharp/Filters/Convolution/BoxBlur.cs b/src/ImageSharp.Processing/Convolution/BoxBlur.cs similarity index 94% rename from src/ImageSharp/Filters/Convolution/BoxBlur.cs rename to src/ImageSharp.Processing/Convolution/BoxBlur.cs index e07da5b302..4dac449b2b 100644 --- a/src/ImageSharp/Filters/Convolution/BoxBlur.cs +++ b/src/ImageSharp.Processing/Convolution/BoxBlur.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image BoxBlur(this Image source, int radius, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new BoxBlurProcessor(radius)); + return source.Apply(rectangle, new BoxBlurProcessor(radius)); } } } diff --git a/src/ImageSharp/Filters/Processors/Convolution/BoxBlurProcessor.cs b/src/ImageSharp.Processing/Convolution/BoxBlurProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Convolution/BoxBlurProcessor.cs rename to src/ImageSharp.Processing/Convolution/BoxBlurProcessor.cs index 98ab075f1d..389fc0c0c3 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/BoxBlurProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/BoxBlurProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/Convolution2DProcessor.cs b/src/ImageSharp.Processing/Convolution/Convolution2DProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/Convolution2DProcessor.cs rename to src/ImageSharp.Processing/Convolution/Convolution2DProcessor.cs index 9db67f0624..d9fbf9e701 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/Convolution2DProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/Convolution2DProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/Convolution2PassProcessor.cs b/src/ImageSharp.Processing/Convolution/Convolution2PassProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/Convolution2PassProcessor.cs rename to src/ImageSharp.Processing/Convolution/Convolution2PassProcessor.cs index 80e3c6f92e..c8f2c86b35 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/Convolution2PassProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/Convolution2PassProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/ConvolutionProcessor.cs b/src/ImageSharp.Processing/Convolution/ConvolutionProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/ConvolutionProcessor.cs rename to src/ImageSharp.Processing/Convolution/ConvolutionProcessor.cs index b771cc5625..3cb139cddb 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/ConvolutionProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/ConvolutionProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Convolution/DetectEdges.cs b/src/ImageSharp.Processing/Convolution/DetectEdges.cs similarity index 98% rename from src/ImageSharp/Filters/Convolution/DetectEdges.cs rename to src/ImageSharp.Processing/Convolution/DetectEdges.cs index fe5cf01a2b..8b12e75e1e 100644 --- a/src/ImageSharp/Filters/Convolution/DetectEdges.cs +++ b/src/ImageSharp.Processing/Convolution/DetectEdges.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -145,7 +145,7 @@ namespace ImageSharp public static Image DetectEdges(this Image source, Rectangle rectangle, IEdgeDetectorProcessor filter) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, filter); + return source.Apply(rectangle, filter); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs index 40cdd2052e..94f7cfebb2 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs index a317c183d1..1dd526785e 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorProcessor.cs index 332b10e41c..ef2feba0be 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs index f4b2442d0f..baa0477330 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/KayyaliProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/KayyaliProcessor.cs index 84d14e7cf4..b15a46cd19 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/KayyaliProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KirschProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/KirschProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KirschProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/KirschProcessor.cs index 6bc440e236..63e688ebb9 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KirschProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/KirschProcessor.cs @@ -2,7 +2,7 @@ // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian3X3Processor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian3X3Processor.cs index 89e29e2117..8eed6b8d29 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian3X3Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian5X5Processor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian5X5Processor.cs index 7b8e965448..7334ecb124 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian5X5Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs index 112d1c5175..027e9e20e8 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/PrewittProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/PrewittProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/PrewittProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/PrewittProcessor.cs index a3d719ba7e..08189d7622 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/PrewittProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/PrewittProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/RobertsCrossProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/RobertsCrossProcessor.cs index f7586e11f3..cc556dfb81 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/RobertsCrossProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/RobinsonProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/RobinsonProcessor.cs index cb05599bf0..630d8a24dd 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/RobinsonProcessor.cs @@ -2,7 +2,7 @@ // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/ScharrProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/ScharrProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/ScharrProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/ScharrProcessor.cs index 3c9c818d3a..107a145660 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/ScharrProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/ScharrProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/SobelProcessor.cs b/src/ImageSharp.Processing/Convolution/EdgeDetection/SobelProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/SobelProcessor.cs rename to src/ImageSharp.Processing/Convolution/EdgeDetection/SobelProcessor.cs index ebca2018b5..1fb0bcd51e 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/SobelProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/EdgeDetection/SobelProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Convolution/GaussianBlur.cs b/src/ImageSharp.Processing/Convolution/GaussianBlur.cs similarity index 94% rename from src/ImageSharp/Filters/Convolution/GaussianBlur.cs rename to src/ImageSharp.Processing/Convolution/GaussianBlur.cs index 0f03864b53..0b090e2469 100644 --- a/src/ImageSharp/Filters/Convolution/GaussianBlur.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianBlur.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image GaussianBlur(this Image source, float sigma, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new GaussianBlurProcessor(sigma)); + return source.Apply(rectangle, new GaussianBlurProcessor(sigma)); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Convolution/GaussianBlurProcessor.cs b/src/ImageSharp.Processing/Convolution/GaussianBlurProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/GaussianBlurProcessor.cs rename to src/ImageSharp.Processing/Convolution/GaussianBlurProcessor.cs index 81fa3dce42..014d0b9e0d 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/GaussianBlurProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianBlurProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Convolution/GaussianSharpen.cs b/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs similarity index 94% rename from src/ImageSharp/Filters/Convolution/GaussianSharpen.cs rename to src/ImageSharp.Processing/Convolution/GaussianSharpen.cs index 39beddf46d..b94384e8c8 100644 --- a/src/ImageSharp/Filters/Convolution/GaussianSharpen.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image GaussianSharpen(this Image source, float sigma, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new GaussianSharpenProcessor(sigma)); + return source.Apply(rectangle, new GaussianSharpenProcessor(sigma)); } } } diff --git a/src/ImageSharp/Filters/Processors/Convolution/GaussianSharpenProcessor.cs b/src/ImageSharp.Processing/Convolution/GaussianSharpenProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/GaussianSharpenProcessor.cs rename to src/ImageSharp.Processing/Convolution/GaussianSharpenProcessor.cs index 5030085a00..76d0450a9c 100644 --- a/src/ImageSharp/Filters/Processors/Convolution/GaussianSharpenProcessor.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianSharpenProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Convolution/Options/EdgeDetection.cs b/src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs similarity index 100% rename from src/ImageSharp/Filters/Convolution/Options/EdgeDetection.cs rename to src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs diff --git a/src/ImageSharp/Filters/Effects/Alpha.cs b/src/ImageSharp.Processing/Effects/Alpha.cs similarity index 94% rename from src/ImageSharp/Filters/Effects/Alpha.cs rename to src/ImageSharp.Processing/Effects/Alpha.cs index 8c765472de..84ffc79da9 100644 --- a/src/ImageSharp/Filters/Effects/Alpha.cs +++ b/src/ImageSharp.Processing/Effects/Alpha.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Alpha(this Image source, int percent, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new AlphaProcessor(percent)); + return source.Apply(rectangle, new AlphaProcessor(percent)); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/AlphaProcessor.cs b/src/ImageSharp.Processing/Effects/AlphaProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/AlphaProcessor.cs rename to src/ImageSharp.Processing/Effects/AlphaProcessor.cs index 59c9352808..498df371eb 100644 --- a/src/ImageSharp/Filters/Processors/Effects/AlphaProcessor.cs +++ b/src/ImageSharp.Processing/Effects/AlphaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/BackgroundColor.cs b/src/ImageSharp.Processing/Effects/BackgroundColor.cs similarity index 89% rename from src/ImageSharp/Filters/Effects/BackgroundColor.cs rename to src/ImageSharp.Processing/Effects/BackgroundColor.cs index d7971ba9ce..3610a019e7 100644 --- a/src/ImageSharp/Filters/Effects/BackgroundColor.cs +++ b/src/ImageSharp.Processing/Effects/BackgroundColor.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -24,7 +24,7 @@ namespace ImageSharp public static Image BackgroundColor(this Image source, TColor color) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(source.Bounds, new BackgroundColorProcessor(color)); + return source.Apply(source.Bounds, new BackgroundColorProcessor(color)); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/BackgroundColorProcessor.cs b/src/ImageSharp.Processing/Effects/BackgroundColorProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/BackgroundColorProcessor.cs rename to src/ImageSharp.Processing/Effects/BackgroundColorProcessor.cs index 3e8ea5417a..5511d0a926 100644 --- a/src/ImageSharp/Filters/Processors/Effects/BackgroundColorProcessor.cs +++ b/src/ImageSharp.Processing/Effects/BackgroundColorProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/Brightness.cs b/src/ImageSharp.Processing/Effects/Brightness.cs similarity index 94% rename from src/ImageSharp/Filters/Effects/Brightness.cs rename to src/ImageSharp.Processing/Effects/Brightness.cs index 6f051605d8..cac23e5fd1 100644 --- a/src/ImageSharp/Filters/Effects/Brightness.cs +++ b/src/ImageSharp.Processing/Effects/Brightness.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Brightness(this Image source, int amount, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new BrightnessProcessor(amount)); + return source.Apply(rectangle, new BrightnessProcessor(amount)); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/BrightnessProcessor.cs b/src/ImageSharp.Processing/Effects/BrightnessProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/BrightnessProcessor.cs rename to src/ImageSharp.Processing/Effects/BrightnessProcessor.cs index 70c6bd6b03..8423542519 100644 --- a/src/ImageSharp/Filters/Processors/Effects/BrightnessProcessor.cs +++ b/src/ImageSharp.Processing/Effects/BrightnessProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/Contrast.cs b/src/ImageSharp.Processing/Effects/Contrast.cs similarity index 94% rename from src/ImageSharp/Filters/Effects/Contrast.cs rename to src/ImageSharp.Processing/Effects/Contrast.cs index 338ae1d1f8..11dcaf6bdd 100644 --- a/src/ImageSharp/Filters/Effects/Contrast.cs +++ b/src/ImageSharp.Processing/Effects/Contrast.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -40,7 +40,7 @@ namespace ImageSharp public static Image Contrast(this Image source, int amount, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new ContrastProcessor(amount)); + return source.Apply(rectangle, new ContrastProcessor(amount)); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/ContrastProcessor.cs b/src/ImageSharp.Processing/Effects/ContrastProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/ContrastProcessor.cs rename to src/ImageSharp.Processing/Effects/ContrastProcessor.cs index 00c5d441a2..7ee72321bf 100644 --- a/src/ImageSharp/Filters/Processors/Effects/ContrastProcessor.cs +++ b/src/ImageSharp.Processing/Effects/ContrastProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/Invert.cs b/src/ImageSharp.Processing/Effects/Invert.cs similarity index 93% rename from src/ImageSharp/Filters/Effects/Invert.cs rename to src/ImageSharp.Processing/Effects/Invert.cs index 95a58835c7..cb4e159b31 100644 --- a/src/ImageSharp/Filters/Effects/Invert.cs +++ b/src/ImageSharp.Processing/Effects/Invert.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -38,7 +38,7 @@ namespace ImageSharp public static Image Invert(this Image source, Rectangle rectangle) where TColor : struct, IPackedPixel, IEquatable { - return source.Process(rectangle, new InvertProcessor()); + return source.Apply(rectangle, new InvertProcessor()); } } } diff --git a/src/ImageSharp/Filters/Processors/Effects/InvertProcessor.cs b/src/ImageSharp.Processing/Effects/InvertProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/InvertProcessor.cs rename to src/ImageSharp.Processing/Effects/InvertProcessor.cs index 7ceb11194a..738c32c882 100644 --- a/src/ImageSharp/Filters/Processors/Effects/InvertProcessor.cs +++ b/src/ImageSharp.Processing/Effects/InvertProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/OilPainting.cs b/src/ImageSharp.Processing/Effects/OilPainting.cs similarity index 95% rename from src/ImageSharp/Filters/Effects/OilPainting.cs rename to src/ImageSharp.Processing/Effects/OilPainting.cs index 59195c400a..591da88f23 100644 --- a/src/ImageSharp/Filters/Effects/OilPainting.cs +++ b/src/ImageSharp.Processing/Effects/OilPainting.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -49,7 +49,7 @@ namespace ImageSharp throw new ArgumentOutOfRangeException(nameof(brushSize)); } - return source.Process(rectangle, new OilPaintingProcessor(levels, brushSize)); + return source.Apply(rectangle, new OilPaintingProcessor(levels, brushSize)); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Effects/OilPaintingProcessor.cs b/src/ImageSharp.Processing/Effects/OilPaintingProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/OilPaintingProcessor.cs rename to src/ImageSharp.Processing/Effects/OilPaintingProcessor.cs index 7cbcafaba8..d3f8d55147 100644 --- a/src/ImageSharp/Filters/Processors/Effects/OilPaintingProcessor.cs +++ b/src/ImageSharp.Processing/Effects/OilPaintingProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Effects/Pixelate.cs b/src/ImageSharp.Processing/Effects/Pixelate.cs similarity index 94% rename from src/ImageSharp/Filters/Effects/Pixelate.cs rename to src/ImageSharp.Processing/Effects/Pixelate.cs index 6fada475b7..811421b54f 100644 --- a/src/ImageSharp/Filters/Effects/Pixelate.cs +++ b/src/ImageSharp.Processing/Effects/Pixelate.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -45,7 +45,7 @@ namespace ImageSharp throw new ArgumentOutOfRangeException(nameof(size)); } - return source.Process(rectangle, new PixelateProcessor(size)); + return source.Apply(rectangle, new PixelateProcessor(size)); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Effects/PixelateProcessor.cs b/src/ImageSharp.Processing/Effects/PixelateProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/PixelateProcessor.cs rename to src/ImageSharp.Processing/Effects/PixelateProcessor.cs index 110cface2e..3b62bce792 100644 --- a/src/ImageSharp/Filters/Processors/Effects/PixelateProcessor.cs +++ b/src/ImageSharp.Processing/Effects/PixelateProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Collections.Generic; diff --git a/src/ImageSharp.Processing/ImageMaths.cs b/src/ImageSharp.Processing/ImageMaths.cs new file mode 100644 index 0000000000..c8046137ba --- /dev/null +++ b/src/ImageSharp.Processing/ImageMaths.cs @@ -0,0 +1,286 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp.Processing +{ + using System; + using System.Linq; + using System.Numerics; + + /// + /// Provides common mathematical methods. + /// + internal static class ImageMaths + { + /// + /// Returns how many bits are required to store the specified number of colors. + /// Performs a Log2() on the value. + /// + /// The number of colors. + /// + /// The + /// + public static int GetBitsNeededForColorDepth(int colors) + { + return (int)Math.Ceiling(Math.Log(colors, 2)); + } + + /// + /// Implementation of 1D Gaussian G(x) function + /// + /// The x provided to G(x). + /// The spread of the blur. + /// The Gaussian G(x) + public static float Gaussian(float x, float sigma) + { + const float Numerator = 1.0f; + float denominator = (float)(Math.Sqrt(2 * Math.PI) * sigma); + + float exponentNumerator = -x * x; + float exponentDenominator = (float)(2 * Math.Pow(sigma, 2)); + + float left = Numerator / denominator; + float right = (float)Math.Exp(exponentNumerator / exponentDenominator); + + return left * right; + } + + /// + /// Returns the result of a B-C filter against the given value. + /// + /// + /// The value to process. + /// The B-Spline curve variable. + /// The Cardinal curve variable. + /// + /// The . + /// + public static float GetBcValue(float x, float b, float c) + { + float temp; + + if (x < 0F) + { + x = -x; + } + + temp = x * x; + if (x < 1F) + { + x = ((12 - (9 * b) - (6 * c)) * (x * temp)) + ((-18 + (12 * b) + (6 * c)) * temp) + (6 - (2 * b)); + return x / 6F; + } + + if (x < 2F) + { + x = ((-b - (6 * c)) * (x * temp)) + (((6 * b) + (30 * c)) * temp) + (((-12 * b) - (48 * c)) * x) + ((8 * b) + (24 * c)); + return x / 6F; + } + + return 0F; + } + + /// + /// Gets the result of a sine cardinal function for the given value. + /// + /// The value to calculate the result for. + /// + /// The . + /// + public static float SinC(float x) + { + if (Math.Abs(x) > Constants.Epsilon) + { + x *= (float)Math.PI; + return Clean((float)Math.Sin(x) / x); + } + + return 1.0f; + } + + /// + /// Returns the given degrees converted to radians. + /// + /// The angle in degrees. + /// + /// The representing the degree as radians. + /// + public static float DegreesToRadians(float degrees) + { + return degrees * (float)(Math.PI / 180); + } + + /// + /// Gets the bounding from the given points. + /// + /// + /// The designating the top left position. + /// + /// + /// The designating the bottom right position. + /// + /// + /// The bounding . + /// + public static Rectangle GetBoundingRectangle(Point topLeft, Point bottomRight) + { + return new Rectangle(topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y); + } + + /// + /// Gets the bounding from the given matrix. + /// + /// The source rectangle. + /// The transformation matrix. + /// + /// The . + /// + public static Rectangle GetBoundingRectangle(Rectangle rectangle, Matrix3x2 matrix) + { + Vector2 leftTop = Vector2.Transform(new Vector2(rectangle.Left, rectangle.Top), matrix); + Vector2 rightTop = Vector2.Transform(new Vector2(rectangle.Right, rectangle.Top), matrix); + Vector2 leftBottom = Vector2.Transform(new Vector2(rectangle.Left, rectangle.Bottom), matrix); + Vector2 rightBottom = Vector2.Transform(new Vector2(rectangle.Right, rectangle.Bottom), matrix); + + Vector2[] allCorners = { leftTop, rightTop, leftBottom, rightBottom }; + float extentX = allCorners.Select(v => v.X).Max() - allCorners.Select(v => v.X).Min(); + float extentY = allCorners.Select(v => v.Y).Max() - allCorners.Select(v => v.Y).Min(); + return new Rectangle(0, 0, (int)extentX, (int)extentY); + } + + /// + /// Finds the bounding rectangle based on the first instance of any color component other + /// than the given one. + /// + /// The pixel format. + /// The to search within. + /// The color component value to remove. + /// The channel to test against. + /// + /// The . + /// + public static Rectangle GetFilteredBoundingRectangle(ImageBase bitmap, float componentValue, RgbaComponent channel = RgbaComponent.B) + where TColor : struct, IPackedPixel, IEquatable + { + int width = bitmap.Width; + int height = bitmap.Height; + Point topLeft = default(Point); + Point bottomRight = default(Point); + + Func, int, int, float, bool> delegateFunc; + + // Determine which channel to check against + switch (channel) + { + case RgbaComponent.R: + delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().X - b) > Constants.Epsilon; + break; + + case RgbaComponent.G: + delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().Y - b) > Constants.Epsilon; + break; + + case RgbaComponent.B: + delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().Z - b) > Constants.Epsilon; + break; + + default: + delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().W - b) > Constants.Epsilon; + break; + } + + Func, int> getMinY = pixels => + { + for (int y = 0; y < height; y++) + { + for (int x = 0; x < width; x++) + { + if (delegateFunc(pixels, x, y, componentValue)) + { + return y; + } + } + } + + return 0; + }; + + Func, int> getMaxY = pixels => + { + for (int y = height - 1; y > -1; y--) + { + for (int x = 0; x < width; x++) + { + if (delegateFunc(pixels, x, y, componentValue)) + { + return y; + } + } + } + + return height; + }; + + Func, int> getMinX = pixels => + { + for (int x = 0; x < width; x++) + { + for (int y = 0; y < height; y++) + { + if (delegateFunc(pixels, x, y, componentValue)) + { + return x; + } + } + } + + return 0; + }; + + Func, int> getMaxX = pixels => + { + for (int x = width - 1; x > -1; x--) + { + for (int y = 0; y < height; y++) + { + if (delegateFunc(pixels, x, y, componentValue)) + { + return x; + } + } + } + + return height; + }; + + using (PixelAccessor bitmapPixels = bitmap.Lock()) + { + topLeft.Y = getMinY(bitmapPixels); + topLeft.X = getMinX(bitmapPixels); + bottomRight.Y = (getMaxY(bitmapPixels) + 1).Clamp(0, height); + bottomRight.X = (getMaxX(bitmapPixels) + 1).Clamp(0, width); + } + + return GetBoundingRectangle(topLeft, bottomRight); + } + + /// + /// Ensures that any passed double is correctly rounded to zero + /// + /// The value to clean. + /// + /// The + /// . + private static float Clean(float x) + { + if (Math.Abs(x) < Constants.Epsilon) + { + return 0F; + } + + return x; + } + } +} diff --git a/src/ImageSharp.Processing/ImageSharp.Processing.xproj b/src/ImageSharp.Processing/ImageSharp.Processing.xproj new file mode 100644 index 0000000000..1fdba5ce9a --- /dev/null +++ b/src/ImageSharp.Processing/ImageSharp.Processing.xproj @@ -0,0 +1,25 @@ + + + + 14.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + a623cfe9-9d2b-4528-ad1f-2e834b061134 + ImageSharp.Processing + .\obj + .\bin\ + v4.5.1 + + + 2.0 + + + True + + + + + + \ No newline at end of file diff --git a/src/ImageSharp/Filters/Overlays/Glow.cs b/src/ImageSharp.Processing/Overlays/Glow.cs similarity index 98% rename from src/ImageSharp/Filters/Overlays/Glow.cs rename to src/ImageSharp.Processing/Overlays/Glow.cs index 4f5a05852a..23110126ef 100644 --- a/src/ImageSharp/Filters/Overlays/Glow.cs +++ b/src/ImageSharp.Processing/Overlays/Glow.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -88,7 +88,7 @@ namespace ImageSharp processor.GlowColor = color; } - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/Overlays/GlowProcessor.cs b/src/ImageSharp.Processing/Overlays/GlowProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Overlays/GlowProcessor.cs rename to src/ImageSharp.Processing/Overlays/GlowProcessor.cs index 6e7d27929e..feff8754ce 100644 --- a/src/ImageSharp/Filters/Processors/Overlays/GlowProcessor.cs +++ b/src/ImageSharp.Processing/Overlays/GlowProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Overlays/Vignette.cs b/src/ImageSharp.Processing/Overlays/Vignette.cs similarity index 98% rename from src/ImageSharp/Filters/Overlays/Vignette.cs rename to src/ImageSharp.Processing/Overlays/Vignette.cs index 7f5ade12d3..f1db1754a7 100644 --- a/src/ImageSharp/Filters/Overlays/Vignette.cs +++ b/src/ImageSharp.Processing/Overlays/Vignette.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -90,7 +90,7 @@ namespace ImageSharp processor.VignetteColor = color; } - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Overlays/VignetteProcessor.cs b/src/ImageSharp.Processing/Overlays/VignetteProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Overlays/VignetteProcessor.cs rename to src/ImageSharp.Processing/Overlays/VignetteProcessor.cs index ddb7b569fd..7867025eba 100644 --- a/src/ImageSharp/Filters/Processors/Overlays/VignetteProcessor.cs +++ b/src/ImageSharp.Processing/Overlays/VignetteProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Properties/AssemblyInfo.cs b/src/ImageSharp.Processing/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..83f4268e74 --- /dev/null +++ b/src/ImageSharp.Processing/Properties/AssemblyInfo.cs @@ -0,0 +1,41 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ImageSharp")] +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("James Jackson-South")] +[assembly: AssemblyProduct("ImageSharp")] +[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] +[assembly: InternalsVisibleTo("ImageSharp.Tests")] +[assembly: InternalsVisibleTo("ImageSharp.Tests46")] +[assembly: InternalsVisibleTo("ImageSharp.Drawing")] \ No newline at end of file diff --git a/src/ImageSharp/Filters/Transforms/AutoOrient.cs b/src/ImageSharp.Processing/Transforms/AutoOrient.cs similarity index 99% rename from src/ImageSharp/Filters/Transforms/AutoOrient.cs rename to src/ImageSharp.Processing/Transforms/AutoOrient.cs index cdd62624ad..ef5b81a18b 100644 --- a/src/ImageSharp/Filters/Transforms/AutoOrient.cs +++ b/src/ImageSharp.Processing/Transforms/AutoOrient.cs @@ -6,6 +6,7 @@ namespace ImageSharp { using System; + using Processing; /// /// Extension methods for the type. diff --git a/src/ImageSharp/Filters/Processors/Transforms/CompandingResizeProcessor.cs b/src/ImageSharp.Processing/Transforms/CompandingResizeProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/CompandingResizeProcessor.cs rename to src/ImageSharp.Processing/Transforms/CompandingResizeProcessor.cs index 80f02c18f6..40271ebb4c 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/CompandingResizeProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/CompandingResizeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Transforms/Crop.cs b/src/ImageSharp.Processing/Transforms/Crop.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Crop.cs rename to src/ImageSharp.Processing/Transforms/Crop.cs index 8b5ad7dafd..62af260f40 100644 --- a/src/ImageSharp/Filters/Transforms/Crop.cs +++ b/src/ImageSharp.Processing/Transforms/Crop.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -41,7 +41,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { CropProcessor processor = new CropProcessor(cropRectangle); - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Transforms/CropProcessor.cs b/src/ImageSharp.Processing/Transforms/CropProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/CropProcessor.cs rename to src/ImageSharp.Processing/Transforms/CropProcessor.cs index 7efd9b9241..9dfd38737c 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/CropProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/CropProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Filters/Transforms/EntropyCrop.cs b/src/ImageSharp.Processing/Transforms/EntropyCrop.cs similarity index 92% rename from src/ImageSharp/Filters/Transforms/EntropyCrop.cs rename to src/ImageSharp.Processing/Transforms/EntropyCrop.cs index a2abcf38dd..56c22b119a 100644 --- a/src/ImageSharp/Filters/Transforms/EntropyCrop.cs +++ b/src/ImageSharp.Processing/Transforms/EntropyCrop.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -25,7 +25,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { EntropyCropProcessor processor = new EntropyCropProcessor(threshold); - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Transforms/EntropyCropProcessor.cs b/src/ImageSharp.Processing/Transforms/EntropyCropProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/EntropyCropProcessor.cs rename to src/ImageSharp.Processing/Transforms/EntropyCropProcessor.cs index 78bef63b01..fc0c649e1a 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/EntropyCropProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/EntropyCropProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Transforms/Flip.cs b/src/ImageSharp.Processing/Transforms/Flip.cs similarity index 92% rename from src/ImageSharp/Filters/Transforms/Flip.cs rename to src/ImageSharp.Processing/Transforms/Flip.cs index 6feb726b4d..49f0f95d65 100644 --- a/src/ImageSharp/Filters/Transforms/Flip.cs +++ b/src/ImageSharp.Processing/Transforms/Flip.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -25,7 +25,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { FlipProcessor processor = new FlipProcessor(flipType); - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } \ No newline at end of file diff --git a/src/ImageSharp/Filters/Processors/Transforms/FlipProcessor.cs b/src/ImageSharp.Processing/Transforms/FlipProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/FlipProcessor.cs rename to src/ImageSharp.Processing/Transforms/FlipProcessor.cs index 4973c10d6d..f14ca8355d 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/FlipProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/FlipProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Filters/Processors/Transforms/Matrix3x2Processor.cs b/src/ImageSharp.Processing/Transforms/Matrix3x2Processor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/Matrix3x2Processor.cs rename to src/ImageSharp.Processing/Transforms/Matrix3x2Processor.cs index b6f3d5a66e..ba8342e80c 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/Matrix3x2Processor.cs +++ b/src/ImageSharp.Processing/Transforms/Matrix3x2Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Transforms/Options/AnchorPosition.cs b/src/ImageSharp.Processing/Transforms/Options/AnchorPosition.cs similarity index 98% rename from src/ImageSharp/Filters/Transforms/Options/AnchorPosition.cs rename to src/ImageSharp.Processing/Transforms/Options/AnchorPosition.cs index c0adb4da45..67010a777f 100644 --- a/src/ImageSharp/Filters/Transforms/Options/AnchorPosition.cs +++ b/src/ImageSharp.Processing/Transforms/Options/AnchorPosition.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Enumerated anchor positions to apply to resized images. diff --git a/src/ImageSharp/Filters/Transforms/Options/FlipType.cs b/src/ImageSharp.Processing/Transforms/Options/FlipType.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Options/FlipType.cs rename to src/ImageSharp.Processing/Transforms/Options/FlipType.cs index 5a9668316e..3c66da697f 100644 --- a/src/ImageSharp/Filters/Transforms/Options/FlipType.cs +++ b/src/ImageSharp.Processing/Transforms/Options/FlipType.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Provides enumeration over how a image should be flipped. diff --git a/src/ImageSharp/Filters/Transforms/Options/Orientation.cs b/src/ImageSharp.Processing/Transforms/Options/Orientation.cs similarity index 97% rename from src/ImageSharp/Filters/Transforms/Options/Orientation.cs rename to src/ImageSharp.Processing/Transforms/Options/Orientation.cs index d7e96ddf4f..b8147348f7 100644 --- a/src/ImageSharp/Filters/Transforms/Options/Orientation.cs +++ b/src/ImageSharp.Processing/Transforms/Options/Orientation.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Enumerates the available orientation values supplied by EXIF metadata. diff --git a/src/ImageSharp/Filters/Transforms/Options/ResizeHelper.cs b/src/ImageSharp.Processing/Transforms/Options/ResizeHelper.cs similarity index 99% rename from src/ImageSharp/Filters/Transforms/Options/ResizeHelper.cs rename to src/ImageSharp.Processing/Transforms/Options/ResizeHelper.cs index 97a88115e7..4ed147aedf 100644 --- a/src/ImageSharp/Filters/Transforms/Options/ResizeHelper.cs +++ b/src/ImageSharp.Processing/Transforms/Options/ResizeHelper.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { using System; using System.Linq; diff --git a/src/ImageSharp/Filters/Transforms/Options/ResizeMode.cs b/src/ImageSharp.Processing/Transforms/Options/ResizeMode.cs similarity index 97% rename from src/ImageSharp/Filters/Transforms/Options/ResizeMode.cs rename to src/ImageSharp.Processing/Transforms/Options/ResizeMode.cs index 7a1cc3c940..dc6092de84 100644 --- a/src/ImageSharp/Filters/Transforms/Options/ResizeMode.cs +++ b/src/ImageSharp.Processing/Transforms/Options/ResizeMode.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Enumerated resize modes to apply to resized images. diff --git a/src/ImageSharp/Filters/Transforms/Options/ResizeOptions.cs b/src/ImageSharp.Processing/Transforms/Options/ResizeOptions.cs similarity index 97% rename from src/ImageSharp/Filters/Transforms/Options/ResizeOptions.cs rename to src/ImageSharp.Processing/Transforms/Options/ResizeOptions.cs index 3cfb3d6c1a..3c67cb9501 100644 --- a/src/ImageSharp/Filters/Transforms/Options/ResizeOptions.cs +++ b/src/ImageSharp.Processing/Transforms/Options/ResizeOptions.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { using System.Collections.Generic; using System.Linq; diff --git a/src/ImageSharp/Filters/Transforms/Options/RotateType.cs b/src/ImageSharp.Processing/Transforms/Options/RotateType.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Options/RotateType.cs rename to src/ImageSharp.Processing/Transforms/Options/RotateType.cs index 0545aa910e..9f09cec280 100644 --- a/src/ImageSharp/Filters/Transforms/Options/RotateType.cs +++ b/src/ImageSharp.Processing/Transforms/Options/RotateType.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Provides enumeration over how the image should be rotated. diff --git a/src/ImageSharp/Filters/Transforms/Pad.cs b/src/ImageSharp.Processing/Transforms/Pad.cs similarity index 98% rename from src/ImageSharp/Filters/Transforms/Pad.cs rename to src/ImageSharp.Processing/Transforms/Pad.cs index 265edd23dd..0f25ed0641 100644 --- a/src/ImageSharp/Filters/Transforms/Pad.cs +++ b/src/ImageSharp.Processing/Transforms/Pad.cs @@ -6,6 +6,7 @@ namespace ImageSharp { using System; + using Processing; /// /// Extension methods for the type. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/BicubicResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/BicubicResampler.cs similarity index 97% rename from src/ImageSharp/Filters/Transforms/Resamplers/BicubicResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/BicubicResampler.cs index a0bfc1413b..e40bf59f92 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/BicubicResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/BicubicResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the bicubic kernel algorithm W(x) as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/BoxResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/BoxResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/BoxResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/BoxResampler.cs index 70879ec804..f174ef48bd 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/BoxResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/BoxResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the box algorithm. Similar to nearest neighbor when upscaling. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/CatmullRomResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/CatmullRomResampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/CatmullRomResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/CatmullRomResampler.cs index 7751aa08b7..0725ecb537 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/CatmullRomResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/CatmullRomResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The Catmull-Rom filter is a well known standard Cubic Filter often used as a interpolation function. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/HermiteResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/HermiteResampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/HermiteResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/HermiteResampler.cs index 9af35e8e82..66cc36a21f 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/HermiteResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/HermiteResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { /// /// The Hermite filter is type of smoothed triangular interpolation Filter, diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/IResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/IResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/IResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/IResampler.cs index ce100a8c74..6339d9d8ea 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/IResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/IResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Encapsulates an interpolation algorithm for resampling images. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos2Resampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos2Resampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/Lanczos2Resampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/Lanczos2Resampler.cs index 3d25cf859a..05d6c630f9 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos2Resampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos2Resampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Lanczos kernel algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos3Resampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos3Resampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/Lanczos3Resampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/Lanczos3Resampler.cs index f771de1a52..094e5bd67f 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos3Resampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos3Resampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Lanczos kernel algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos5Resampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos5Resampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/Lanczos5Resampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/Lanczos5Resampler.cs index 4584b258f5..9022aaaaf0 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos5Resampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos5Resampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Lanczos kernel algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos8Resampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos8Resampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/Lanczos8Resampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/Lanczos8Resampler.cs index 03f5a6d7ba..4769d38476 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/Lanczos8Resampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/Lanczos8Resampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Lanczos kernel algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/MitchellNetravaliResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/MitchellNetravaliResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/MitchellNetravaliResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/MitchellNetravaliResampler.cs index f4bc3a6f27..38ca614c4a 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/MitchellNetravaliResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/MitchellNetravaliResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the mitchell algorithm as described on diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/NearestNeighborResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/NearestNeighborResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/NearestNeighborResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/NearestNeighborResampler.cs index 12ba3ae1a3..f1e5ab8fdb 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/NearestNeighborResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/NearestNeighborResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the nearest neighbor algorithm. This uses an unscaled filter diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/RobidouxResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/RobidouxResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/RobidouxResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/RobidouxResampler.cs index 6ef90bda4b..1b060e6e3f 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/RobidouxResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/RobidouxResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Robidoux algorithm. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/RobidouxSharpResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/RobidouxSharpResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/RobidouxSharpResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/RobidouxSharpResampler.cs index 8755bf3e49..86c7b0517c 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/RobidouxSharpResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/RobidouxSharpResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the Robidoux Sharp algorithm. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/SplineResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/SplineResampler.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Resamplers/SplineResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/SplineResampler.cs index 921ea23a84..abd5b835c6 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/SplineResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/SplineResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the spline algorithm. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/TriangleResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/TriangleResampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/TriangleResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/TriangleResampler.cs index c53d5a1466..bf88b65df8 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/TriangleResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/TriangleResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the triangle (bilinear) algorithm. diff --git a/src/ImageSharp/Filters/Transforms/Resamplers/WelchResampler.cs b/src/ImageSharp.Processing/Transforms/Resamplers/WelchResampler.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Resamplers/WelchResampler.cs rename to src/ImageSharp.Processing/Transforms/Resamplers/WelchResampler.cs index eb55061515..6fafd8ebb2 100644 --- a/src/ImageSharp/Filters/Transforms/Resamplers/WelchResampler.cs +++ b/src/ImageSharp.Processing/Transforms/Resamplers/WelchResampler.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// The function implements the welch algorithm. diff --git a/src/ImageSharp/Filters/Processors/Transforms/ResamplingWeightedProcessor.cs b/src/ImageSharp.Processing/Transforms/ResamplingWeightedProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/ResamplingWeightedProcessor.cs rename to src/ImageSharp.Processing/Transforms/ResamplingWeightedProcessor.cs index f29560835c..d64fb2858f 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/ResamplingWeightedProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/ResamplingWeightedProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; diff --git a/src/ImageSharp/Filters/Transforms/Resize.cs b/src/ImageSharp.Processing/Transforms/Resize.cs similarity index 98% rename from src/ImageSharp/Filters/Transforms/Resize.cs rename to src/ImageSharp.Processing/Transforms/Resize.cs index f1e62df8ef..992136a217 100644 --- a/src/ImageSharp/Filters/Transforms/Resize.cs +++ b/src/ImageSharp.Processing/Transforms/Resize.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -152,7 +152,7 @@ namespace ImageSharp processor = new ResizeProcessor(sampler, width, height, targetRectangle); } - return source.Process(sourceRectangle, processor); + return source.Apply(sourceRectangle, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/Transforms/ResizeProcessor.cs b/src/ImageSharp.Processing/Transforms/ResizeProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/ResizeProcessor.cs rename to src/ImageSharp.Processing/Transforms/ResizeProcessor.cs index 48f6b50368..10fe68f90c 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/ResizeProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/ResizeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Transforms/Rotate.cs b/src/ImageSharp.Processing/Transforms/Rotate.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Rotate.cs rename to src/ImageSharp.Processing/Transforms/Rotate.cs index 3d88523c67..85cfb91e85 100644 --- a/src/ImageSharp/Filters/Transforms/Rotate.cs +++ b/src/ImageSharp.Processing/Transforms/Rotate.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -52,7 +52,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { RotateProcessor processor = new RotateProcessor { Angle = degrees, Expand = expand }; - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } diff --git a/src/ImageSharp/Filters/Transforms/RotateFlip.cs b/src/ImageSharp.Processing/Transforms/RotateFlip.cs similarity index 98% rename from src/ImageSharp/Filters/Transforms/RotateFlip.cs rename to src/ImageSharp.Processing/Transforms/RotateFlip.cs index 02eb7b7028..e69f183380 100644 --- a/src/ImageSharp/Filters/Transforms/RotateFlip.cs +++ b/src/ImageSharp.Processing/Transforms/RotateFlip.cs @@ -6,6 +6,7 @@ namespace ImageSharp { using System; + using Processing; /// /// Extension methods for the type. diff --git a/src/ImageSharp/Filters/Processors/Transforms/RotateProcessor.cs b/src/ImageSharp.Processing/Transforms/RotateProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/RotateProcessor.cs rename to src/ImageSharp.Processing/Transforms/RotateProcessor.cs index e81cd7e57e..4d28f5bea9 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/RotateProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/RotateProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Transforms/Skew.cs b/src/ImageSharp.Processing/Transforms/Skew.cs similarity index 96% rename from src/ImageSharp/Filters/Transforms/Skew.cs rename to src/ImageSharp.Processing/Transforms/Skew.cs index dab0ace2fd..914d9b5eb5 100644 --- a/src/ImageSharp/Filters/Transforms/Skew.cs +++ b/src/ImageSharp.Processing/Transforms/Skew.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -41,7 +41,7 @@ namespace ImageSharp where TColor : struct, IPackedPixel, IEquatable { SkewProcessor processor = new SkewProcessor { AngleX = degreesX, AngleY = degreesY, Expand = expand }; - return source.Process(source.Bounds, processor); + return source.Apply(source.Bounds, processor); } } } diff --git a/src/ImageSharp/Filters/Processors/Transforms/SkewProcessor.cs b/src/ImageSharp.Processing/Transforms/SkewProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/SkewProcessor.cs rename to src/ImageSharp.Processing/Transforms/SkewProcessor.cs index e13d4995b8..7c6d72c188 100644 --- a/src/ImageSharp/Filters/Processors/Transforms/SkewProcessor.cs +++ b/src/ImageSharp.Processing/Transforms/SkewProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/project.json b/src/ImageSharp.Processing/project.json new file mode 100644 index 0000000000..e16ebd756f --- /dev/null +++ b/src/ImageSharp.Processing/project.json @@ -0,0 +1,78 @@ +{ + "version": "1.0.0-alpha1-*", + "title": "ImageSharp.Processing", + "description": "A cross-platform library for the processing of image files; written in C#", + "authors": [ + "James Jackson-South and contributors" + ], + "packOptions": { + "owners": [ + "James Jackson-South and contributors" + ], + "projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", + "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", + "iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", + "requireLicenseAcceptance": false, + "repository": { + "type": "git", + "url": "https://github.com/JimBobSquarePants/ImageSharp" + }, + "tags": [ + "Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" + ] + }, + "buildOptions": { + "allowUnsafe": true, + "xmlDoc": true, + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": { + "target": "project", + "version": "1.0.0-alpha1" + }, + "StyleCop.Analyzers": { + "version": "1.1.0-beta001", + "type": "build" + }, + "System.Buffers": "4.0.0", + "System.Numerics.Vectors": "4.1.1", + "System.Runtime.CompilerServices.Unsafe": "4.0.0" + }, + "frameworks": { + "netstandard1.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tools": "4.0.1", + "System.IO": "4.1.0", + "System.IO.Compression": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Runtime.Numerics": "4.0.1", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Tasks.Parallel": "4.0.1" + } + }, + "net45": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Image/IImageProcessor.cs b/src/ImageSharp/Image/IImageProcessor.cs index 1395962150..fae0c23b8a 100644 --- a/src/ImageSharp/Image/IImageProcessor.cs +++ b/src/ImageSharp/Image/IImageProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Image/ImageProcessingExtensions.cs b/src/ImageSharp/Image/ImageProcessingExtensions.cs index 68a3ab2160..d9073ad16f 100644 --- a/src/ImageSharp/Image/ImageProcessingExtensions.cs +++ b/src/ImageSharp/Image/ImageProcessingExtensions.cs @@ -6,7 +6,7 @@ namespace ImageSharp { using System; - using Processors; + using Processing; /// /// Extension methods for the type. @@ -21,10 +21,10 @@ namespace ImageSharp /// The image this method extends. /// The processor to apply to the image. /// The . - internal static Image Process(this Image source, IImageProcessor processor) + public static Image Apply(this Image source, IImageProcessor processor) where TColor : struct, IPackedPixel, IEquatable { - return Process(source, source.Bounds, processor); + return Apply(source, source.Bounds, processor); } /// @@ -38,7 +38,7 @@ namespace ImageSharp /// /// The processors to apply to the image. /// The . - internal static Image Process(this Image source, Rectangle sourceRectangle, IImageProcessor processor) + public static Image Apply(this Image source, Rectangle sourceRectangle, IImageProcessor processor) where TColor : struct, IPackedPixel, IEquatable { processor.Apply(source, sourceRectangle); diff --git a/src/ImageSharp/ImageProcessor.cs b/src/ImageSharp/ImageProcessor.cs index 49b60b6781..79bc3ee1e6 100644 --- a/src/ImageSharp/ImageProcessor.cs +++ b/src/ImageSharp/ImageProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processors +namespace ImageSharp.Processing { using System; using System.Threading.Tasks; diff --git a/tests/ImageSharp.Benchmarks/project.json b/tests/ImageSharp.Benchmarks/project.json index 3160268d73..74f091c342 100644 --- a/tests/ImageSharp.Benchmarks/project.json +++ b/tests/ImageSharp.Benchmarks/project.json @@ -15,9 +15,22 @@ }, "dependencies": { "BenchmarkDotNet.Diagnostics.Windows": "0.10.1", - "ImageSharp": "1.0.0-*", - "ImageSharp.Drawing": "1.0.0-*", - "ImageSharp.Formats": "1.0.0-*" + "ImageSharp": { + "target": "project", + "version": "*" + }, + "ImageSharp.Drawing": { + "target": "project", + "version": "*" + }, + "ImageSharp.Formats": { + "target": "project", + "version": "*" + }, + "ImageSharp.Processing": { + "target": "project", + "version": "*" + }, }, "commands": { "ImageSharp.Benchmarks": "ImageSharp.Benchmarks" diff --git a/tests/ImageSharp.Tests/Processors/Filters/AutoOrientTests.cs b/tests/ImageSharp.Tests/Processors/Filters/AutoOrientTests.cs index d2e6dcbc1a..10d6253fd3 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/AutoOrientTests.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/AutoOrientTests.cs @@ -6,6 +6,7 @@ namespace ImageSharp.Tests { using System.IO; + using Processing; using Xunit; public class AutoOrientTests : FileTestBase diff --git a/tests/ImageSharp.Tests/Processors/Filters/FlipTests.cs b/tests/ImageSharp.Tests/Processors/Filters/FlipTests.cs index c07071e708..26f9646769 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/FlipTests.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/FlipTests.cs @@ -6,7 +6,7 @@ namespace ImageSharp.Tests { using System.IO; - + using Processing; using Xunit; public class FlipTests : FileTestBase diff --git a/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs b/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs index 6796ba6176..de6c8620f6 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs @@ -5,7 +5,6 @@ namespace ImageSharp.Tests { - using Processors; using System.IO; using Xunit; diff --git a/tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs b/tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs index b29ab01161..a7a814406d 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/ResizeTests.cs @@ -7,7 +7,7 @@ namespace ImageSharp.Tests { using System; using System.IO; - + using Processing; using Xunit; public class ResizeTests : FileTestBase diff --git a/tests/ImageSharp.Tests/Processors/Filters/RotateFlipTest.cs b/tests/ImageSharp.Tests/Processors/Filters/RotateFlipTest.cs index 04704b672e..1cccef48a3 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/RotateFlipTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/RotateFlipTest.cs @@ -6,7 +6,7 @@ namespace ImageSharp.Tests { using System.IO; - + using Processing; using Xunit; public class RotateFlipTest : FileTestBase diff --git a/tests/ImageSharp.Tests/Processors/Filters/RotateTest.cs b/tests/ImageSharp.Tests/Processors/Filters/RotateTest.cs index 96fb39e07a..406edda37f 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/RotateTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/RotateTest.cs @@ -6,7 +6,7 @@ namespace ImageSharp.Tests { using System.IO; - + using Processing; using Xunit; public class RotateTest : FileTestBase diff --git a/tests/ImageSharp.Tests/project.json b/tests/ImageSharp.Tests/project.json index 40ff653bf1..396aa5236a 100644 --- a/tests/ImageSharp.Tests/project.json +++ b/tests/ImageSharp.Tests/project.json @@ -20,11 +20,24 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "*" + }, "xunit": "2.2.0-*", "dotnet-test-xunit": "2.2.0-*", - "ImageSharp.Drawing": "1.0.0-*", - "ImageSharp.Formats": "1.0.0-*" + "ImageSharp.Drawing": { + "target": "project", + "version": "*" + }, + "ImageSharp.Formats": { + "target": "project", + "version": "*" + }, + "ImageSharp.Processing": { + "target": "project", + "version": "*" + } }, "frameworks": { "netcoreapp1.1": { From 977ef36e006cfde6677806907632c309e793f38c Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Fri, 30 Dec 2016 18:01:59 +0000 Subject: [PATCH 10/36] add missing stylecop file and fix local warnings --- build/Program.cs | 4 ++++ src/ImageSharp.Drawing/project.json | 4 ++-- src/ImageSharp.Formats.Bmp/project.json | 2 +- src/ImageSharp.Formats.Gif/project.json | 2 +- src/ImageSharp.Formats.Jpeg/project.json | 2 +- src/ImageSharp.Formats.Png/project.json | 2 +- src/ImageSharp.Formats/project.json | 10 +++++----- src/ImageSharp.Processing/stylecop.json | 9 +++++++++ tests/ImageSharp.Benchmarks/project.json | 10 +++++----- tests/ImageSharp.Tests/project.json | 8 ++++---- 10 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 src/ImageSharp.Processing/stylecop.json diff --git a/build/Program.cs b/build/Program.cs index 13056a6eb3..cda3f6236a 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -16,6 +16,8 @@ namespace ConsoleApplication public static void Main(string[] args) { + // TODO add options to updating the version number for indirvidual projects + var resetmode = args.Contains("reset"); // find the project root where glbal.json lives @@ -97,6 +99,8 @@ namespace ConsoleApplication var sb = new StringBuilder(); foreach (var p in projects) { + //TODO force update of all dependent projects to point to the newest build. + //we skip the build number and standard CI prefix on first commits var newVersion = p.CalculateVersionNumber(branch); File.Copy(p.FullProjectFilePath, $"{p.FullProjectFilePath}.bak", true); diff --git a/src/ImageSharp.Drawing/project.json b/src/ImageSharp.Drawing/project.json index 1a0512981f..487c26da8e 100644 --- a/src/ImageSharp.Drawing/project.json +++ b/src/ImageSharp.Drawing/project.json @@ -39,11 +39,11 @@ "dependencies": { "ImageSharp": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "ImageSharp.Processing": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "StyleCop.Analyzers": { "version": "1.0.0", diff --git a/src/ImageSharp.Formats.Bmp/project.json b/src/ImageSharp.Formats.Bmp/project.json index 9c5da69b6c..a646b9a728 100644 --- a/src/ImageSharp.Formats.Bmp/project.json +++ b/src/ImageSharp.Formats.Bmp/project.json @@ -37,7 +37,7 @@ "dependencies": { "ImageSharp": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", diff --git a/src/ImageSharp.Formats.Gif/project.json b/src/ImageSharp.Formats.Gif/project.json index 90db84c5c5..e1aa864d14 100644 --- a/src/ImageSharp.Formats.Gif/project.json +++ b/src/ImageSharp.Formats.Gif/project.json @@ -37,7 +37,7 @@ "dependencies": { "ImageSharp": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", diff --git a/src/ImageSharp.Formats.Jpeg/project.json b/src/ImageSharp.Formats.Jpeg/project.json index 6ca42be0d6..c920fe69ed 100644 --- a/src/ImageSharp.Formats.Jpeg/project.json +++ b/src/ImageSharp.Formats.Jpeg/project.json @@ -37,7 +37,7 @@ "dependencies": { "ImageSharp": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", diff --git a/src/ImageSharp.Formats.Png/project.json b/src/ImageSharp.Formats.Png/project.json index 097bce1c15..014935b08a 100644 --- a/src/ImageSharp.Formats.Png/project.json +++ b/src/ImageSharp.Formats.Png/project.json @@ -37,7 +37,7 @@ "dependencies": { "ImageSharp": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", diff --git a/src/ImageSharp.Formats/project.json b/src/ImageSharp.Formats/project.json index a2e2040015..80b7f01417 100644 --- a/src/ImageSharp.Formats/project.json +++ b/src/ImageSharp.Formats/project.json @@ -37,23 +37,23 @@ "dependencies": { "ImageSharp": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "ImageSharp.Formats.Png": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "ImageSharp.Formats.Bmp": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "ImageSharp.Formats.Jpeg": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "ImageSharp.Formats.Gif": { "target": "project", - "version": "1.0.0-alpha1-*" + "version": "1.0.0-*" }, "StyleCop.Analyzers": { "version": "1.1.0-beta001", diff --git a/src/ImageSharp.Processing/stylecop.json b/src/ImageSharp.Processing/stylecop.json new file mode 100644 index 0000000000..df8f120a5b --- /dev/null +++ b/src/ImageSharp.Processing/stylecop.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", + "settings": { + "documentationRules": { + "companyName": "James Jackson-South", + "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." + } + } +} \ No newline at end of file diff --git a/tests/ImageSharp.Benchmarks/project.json b/tests/ImageSharp.Benchmarks/project.json index 74f091c342..329a58ec18 100644 --- a/tests/ImageSharp.Benchmarks/project.json +++ b/tests/ImageSharp.Benchmarks/project.json @@ -17,20 +17,20 @@ "BenchmarkDotNet.Diagnostics.Windows": "0.10.1", "ImageSharp": { "target": "project", - "version": "*" + "version": "1.0.0-*" }, "ImageSharp.Drawing": { "target": "project", - "version": "*" + "version": "1.0.0-*" }, "ImageSharp.Formats": { "target": "project", - "version": "*" + "version": "1.0.0-*" }, "ImageSharp.Processing": { "target": "project", - "version": "*" - }, + "version": "1.0.0-*" + } }, "commands": { "ImageSharp.Benchmarks": "ImageSharp.Benchmarks" diff --git a/tests/ImageSharp.Tests/project.json b/tests/ImageSharp.Tests/project.json index 396aa5236a..f295f7fa3a 100644 --- a/tests/ImageSharp.Tests/project.json +++ b/tests/ImageSharp.Tests/project.json @@ -22,21 +22,21 @@ "dependencies": { "ImageSharp": { "target": "project", - "version": "*" + "version": "1.0.0-*" }, "xunit": "2.2.0-*", "dotnet-test-xunit": "2.2.0-*", "ImageSharp.Drawing": { "target": "project", - "version": "*" + "version": "1.0.0-*" }, "ImageSharp.Formats": { "target": "project", - "version": "*" + "version": "1.0.0-*" }, "ImageSharp.Processing": { "target": "project", - "version": "*" + "version": "1.0.0-*" } }, "frameworks": { From 499f319e6881cd822414d105a52b9f694c549572 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sat, 31 Dec 2016 10:45:37 +0000 Subject: [PATCH 11/36] clean up --- GitVersion.yml | 15 --------------- src/ImageSharp.Processing/ImageMaths.cs | 13 ------------- src/ImageSharp/Properties/AssemblyInfo.cs | 3 +-- tests/ImageSharp.Tests/project.json | 5 ++++- 4 files changed, 5 insertions(+), 31 deletions(-) delete mode 100644 GitVersion.yml diff --git a/GitVersion.yml b/GitVersion.yml deleted file mode 100644 index 914437baef..0000000000 --- a/GitVersion.yml +++ /dev/null @@ -1,15 +0,0 @@ -# to create a new package you create a new release/tag -# in github appveyor will build it without the -cixxx tag -# it will then be deployable cleanly to nuget.org - -next-version: 1.0.0 -legacy-semver-padding: 6 -branches: - master: - tag: alpha- - mode: ContinuousDeployment - increment: Minor - prevent-increment-of-merged-branch-version: false - track-merge-target: true -ignore: - sha: [] \ No newline at end of file diff --git a/src/ImageSharp.Processing/ImageMaths.cs b/src/ImageSharp.Processing/ImageMaths.cs index c8046137ba..c2d905b171 100644 --- a/src/ImageSharp.Processing/ImageMaths.cs +++ b/src/ImageSharp.Processing/ImageMaths.cs @@ -14,19 +14,6 @@ namespace ImageSharp.Processing /// internal static class ImageMaths { - /// - /// Returns how many bits are required to store the specified number of colors. - /// Performs a Log2() on the value. - /// - /// The number of colors. - /// - /// The - /// - public static int GetBitsNeededForColorDepth(int colors) - { - return (int)Math.Ceiling(Math.Log(colors, 2)); - } - /// /// Implementation of 1D Gaussian G(x) function /// diff --git a/src/ImageSharp/Properties/AssemblyInfo.cs b/src/ImageSharp/Properties/AssemblyInfo.cs index 83f4268e74..3a9fc9d7e8 100644 --- a/src/ImageSharp/Properties/AssemblyInfo.cs +++ b/src/ImageSharp/Properties/AssemblyInfo.cs @@ -37,5 +37,4 @@ using System.Runtime.CompilerServices; // Ensure the internals can be tested. [assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] [assembly: InternalsVisibleTo("ImageSharp.Tests")] -[assembly: InternalsVisibleTo("ImageSharp.Tests46")] -[assembly: InternalsVisibleTo("ImageSharp.Drawing")] \ No newline at end of file +[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file diff --git a/tests/ImageSharp.Tests/project.json b/tests/ImageSharp.Tests/project.json index f295f7fa3a..b8f19f041a 100644 --- a/tests/ImageSharp.Tests/project.json +++ b/tests/ImageSharp.Tests/project.json @@ -49,7 +49,10 @@ "Microsoft.CodeCoverage": "1.0.2" } }, - "net451": {} + "net451": { + "dependencies": { + } + } }, "testRunner": "xunit" } \ No newline at end of file From 408c3bd19f152042f4892c693a22e20882f019b3 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sat, 31 Dec 2016 11:08:14 +0000 Subject: [PATCH 12/36] fix tag names --- ImageSharp.sln | 6 ++---- build/Program.cs | 14 +++++++++----- build/project.json | 8 +------- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/ImageSharp.sln b/ImageSharp.sln index c4abf1ae0a..3164a389e5 100644 --- a/ImageSharp.sln +++ b/ImageSharp.sln @@ -11,19 +11,17 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Benchmarks", "te EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{C317F1B1-D75E-4C6D-83EB-80367343E0D7}" ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig .travis.yml = .travis.yml - build\appveyor-project-version-patch.js = build\appveyor-project-version-patch.js - build\appveyor-semver.ps1 = build\appveyor-semver.ps1 appveyor.yml = appveyor.yml CodeCoverage.runsettings = CodeCoverage.runsettings contributing.md = contributing.md - build\dotnet-latest.ps1 = build\dotnet-latest.ps1 + dotnet-latest.ps1 = dotnet-latest.ps1 features.md = features.md global.json = global.json ImageSharp.ruleset = ImageSharp.ruleset ImageSharp.sln.DotSettings = ImageSharp.sln.DotSettings NuGet.config = NuGet.config - build\package.json = build\package.json README.md = README.md Rebracer.xml = Rebracer.xml Settings.StyleCop = Settings.StyleCop diff --git a/build/Program.cs b/build/Program.cs index cda3f6236a..3ee87d7d54 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -250,8 +250,7 @@ namespace ConsoleApplication internal string CalculateVersionNumber(string branch) { var version = this.Version.ToFullString(); - - + if (this.commitCount == 1 && branch == "") //master only { if (this.Version.IsPrerelease) @@ -263,6 +262,7 @@ namespace ConsoleApplication //only 1 commit (the changing one) we will skip appending suffix return version; } + var rootSpecialVersion = ""; @@ -276,10 +276,14 @@ namespace ConsoleApplication { rootSpecialVersion = "-" + rootSpecialVersion; } - if (branch == "") + if (branch == "" && !this.Version.IsPrerelease) { branch = fallbackTag; } + if (branch.Length > 0) + { + branch = "-" + branch; + } var maxLength = 20; maxLength -= rootSpecialVersion.Length; @@ -288,8 +292,8 @@ namespace ConsoleApplication { branch = branch.Substring(0, maxLength); } - - return $"{version}{rootSpecialVersion}-{branch}-{this.commitCount:00000}"; + + return $"{version}{rootSpecialVersion}{branch}-{this.commitCount:00000}"; } } } diff --git a/build/project.json b/build/project.json index 4f13b397fc..1075b87246 100644 --- a/build/project.json +++ b/build/project.json @@ -10,13 +10,7 @@ }, "frameworks": { "net46": { - //"dependencies": { - // "Microsoft.NETCore.App": { - // "type": "platform", - // "version": "1.0.0" - // } - //}, - //"imports": "dnxcore50" + // this is only a net46 app because of LibGit2Sharp once they have a version that works on coreclr we can shift over. } } } From 5716cb0b23a97374fda59a05a0f1e2978817c908 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sat, 31 Dec 2016 11:16:04 +0000 Subject: [PATCH 13/36] fixes from rebase --- .../BootstrapperExtensions.cs | 29 ------------------- .../ConfigurationExtensions.cs | 29 +++++++++++++++++++ .../BootstrapperExtensions.cs | 29 ------------------- .../ConfigurationExtensions.cs | 29 +++++++++++++++++++ .../BootstrapperExtensions.cs | 29 ------------------- .../ConfigurationExtensions.cs | 29 +++++++++++++++++++ .../BootstrapperExtensions.cs | 29 ------------------- .../ConfigurationExtensions.cs | 29 +++++++++++++++++++ ...tensions.cs => ConfigurationExtensions.cs} | 14 ++++----- tests/ImageSharp.Tests/TestBase.cs | 2 +- 10 files changed, 124 insertions(+), 124 deletions(-) delete mode 100644 src/ImageSharp.Formats.Bmp/BootstrapperExtensions.cs create mode 100644 src/ImageSharp.Formats.Bmp/ConfigurationExtensions.cs delete mode 100644 src/ImageSharp.Formats.Gif/BootstrapperExtensions.cs create mode 100644 src/ImageSharp.Formats.Gif/ConfigurationExtensions.cs delete mode 100644 src/ImageSharp.Formats.Jpeg/BootstrapperExtensions.cs create mode 100644 src/ImageSharp.Formats.Jpeg/ConfigurationExtensions.cs delete mode 100644 src/ImageSharp.Formats.Png/BootstrapperExtensions.cs create mode 100644 src/ImageSharp.Formats.Png/ConfigurationExtensions.cs rename src/ImageSharp.Formats/{BootstrapperExtensions.cs => ConfigurationExtensions.cs} (55%) diff --git a/src/ImageSharp.Formats.Bmp/BootstrapperExtensions.cs b/src/ImageSharp.Formats.Bmp/BootstrapperExtensions.cs deleted file mode 100644 index 3ed80a5bd9..0000000000 --- a/src/ImageSharp.Formats.Bmp/BootstrapperExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class BootstrapperExtensions - { - /// - /// Adds the BMP format. - /// - /// The bootstrapper. - /// The bootstraper - public static Bootstrapper AddBmpFormat(this Bootstrapper bootstrapper) - { - bootstrapper.AddImageFormat(new BmpFormat()); - return bootstrapper; - } - } -} diff --git a/src/ImageSharp.Formats.Bmp/ConfigurationExtensions.cs b/src/ImageSharp.Formats.Bmp/ConfigurationExtensions.cs new file mode 100644 index 0000000000..6f24f96e91 --- /dev/null +++ b/src/ImageSharp.Formats.Bmp/ConfigurationExtensions.cs @@ -0,0 +1,29 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class ConfigurationExtensions + { + /// + /// Adds the BMP format. + /// + /// The config. + /// The config + public static Configuration AddBmpFormat(this Configuration config) + { + config.AddImageFormat(new BmpFormat()); + return config; + } + } +} diff --git a/src/ImageSharp.Formats.Gif/BootstrapperExtensions.cs b/src/ImageSharp.Formats.Gif/BootstrapperExtensions.cs deleted file mode 100644 index 33faf854cf..0000000000 --- a/src/ImageSharp.Formats.Gif/BootstrapperExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class BootstrapperExtensions - { - /// - /// Adds the Gif format. - /// - /// The bootstrapper. - /// The Bootstrapper - public static Bootstrapper AddGifFormat(this Bootstrapper bootstrapper) - { - bootstrapper.AddImageFormat(new GifFormat()); - return bootstrapper; - } - } -} diff --git a/src/ImageSharp.Formats.Gif/ConfigurationExtensions.cs b/src/ImageSharp.Formats.Gif/ConfigurationExtensions.cs new file mode 100644 index 0000000000..3720423cf2 --- /dev/null +++ b/src/ImageSharp.Formats.Gif/ConfigurationExtensions.cs @@ -0,0 +1,29 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class ConfigurationExtensions + { + /// + /// Adds the Gif format. + /// + /// The config. + /// The config + public static Configuration AddGifFormat(this Configuration config) + { + config.AddImageFormat(new GifFormat()); + return config; + } + } +} diff --git a/src/ImageSharp.Formats.Jpeg/BootstrapperExtensions.cs b/src/ImageSharp.Formats.Jpeg/BootstrapperExtensions.cs deleted file mode 100644 index b05a71e8b5..0000000000 --- a/src/ImageSharp.Formats.Jpeg/BootstrapperExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class BootstrapperExtensions - { - /// - /// Adds the Jpeg format. - /// - /// The bootstrapper. - /// The Bootstrapper - public static Bootstrapper AddJpegFormat(this Bootstrapper bootstrapper) - { - bootstrapper.AddImageFormat(new JpegFormat()); - return bootstrapper; - } - } -} diff --git a/src/ImageSharp.Formats.Jpeg/ConfigurationExtensions.cs b/src/ImageSharp.Formats.Jpeg/ConfigurationExtensions.cs new file mode 100644 index 0000000000..28d49629d6 --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/ConfigurationExtensions.cs @@ -0,0 +1,29 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class ConfigurationExtensions + { + /// + /// Adds the Jpeg format. + /// + /// The config. + /// The config + public static Configuration AddJpegFormat(this Configuration config) + { + config.AddImageFormat(new JpegFormat()); + return config; + } + } +} diff --git a/src/ImageSharp.Formats.Png/BootstrapperExtensions.cs b/src/ImageSharp.Formats.Png/BootstrapperExtensions.cs deleted file mode 100644 index eeef291a15..0000000000 --- a/src/ImageSharp.Formats.Png/BootstrapperExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class BootstrapperExtensions - { - /// - /// Adds the Png format. - /// - /// The bootstrapper. - /// The Bootstrapper - public static Bootstrapper AddPngFormat(this Bootstrapper bootstrapper) - { - bootstrapper.AddImageFormat(new PngFormat()); - return bootstrapper; - } - } -} diff --git a/src/ImageSharp.Formats.Png/ConfigurationExtensions.cs b/src/ImageSharp.Formats.Png/ConfigurationExtensions.cs new file mode 100644 index 0000000000..e09f0a0cbb --- /dev/null +++ b/src/ImageSharp.Formats.Png/ConfigurationExtensions.cs @@ -0,0 +1,29 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System; + using System.IO; + + using Formats; + + /// + /// Extension methods for the type. + /// + public static partial class ConfigurationExtensions + { + /// + /// Adds the Png format. + /// + /// The Image configurations. + /// The Configuration object + public static Configuration AddPngFormat(this Configuration config) + { + config.AddImageFormat(new PngFormat()); + return config; + } + } +} diff --git a/src/ImageSharp.Formats/BootstrapperExtensions.cs b/src/ImageSharp.Formats/ConfigurationExtensions.cs similarity index 55% rename from src/ImageSharp.Formats/BootstrapperExtensions.cs rename to src/ImageSharp.Formats/ConfigurationExtensions.cs index 90b3384a5e..f867bcbf60 100644 --- a/src/ImageSharp.Formats/BootstrapperExtensions.cs +++ b/src/ImageSharp.Formats/ConfigurationExtensions.cs @@ -1,4 +1,4 @@ -// +// // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // @@ -11,18 +11,18 @@ namespace ImageSharp using Formats; /// - /// Extension methods for the type. + /// Extension methods for the type. /// - public static partial class BootstrapperExtensions + public static partial class ConfigurationExtensions { /// /// Adds the common formats, PNG, JPEG, GIF and BMP. /// - /// The bootstrapper. - /// The bootstrapper - public static Bootstrapper AddCommonFormats(this Bootstrapper bootstrapper) + /// The config. + /// The config + public static Configuration AddCommonFormats(this Configuration config) { - return bootstrapper + return config .AddPngFormat() .AddJpegFormat() .AddGifFormat() diff --git a/tests/ImageSharp.Tests/TestBase.cs b/tests/ImageSharp.Tests/TestBase.cs index 391ed89ac4..dba93958b0 100644 --- a/tests/ImageSharp.Tests/TestBase.cs +++ b/tests/ImageSharp.Tests/TestBase.cs @@ -15,7 +15,7 @@ namespace ImageSharp.Tests { protected TestBase() { - Bootstrapper.Default.AddCommonFormats(); + Configuration.Default.AddCommonFormats(); } /// From 007461b7c7b5b1d898453920ed21c722954ef3a7 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sat, 31 Dec 2016 12:08:47 +0000 Subject: [PATCH 14/36] clean up --- build/Program.cs | 233 +++++++++++++++++++++++++++-------------------- 1 file changed, 132 insertions(+), 101 deletions(-) diff --git a/build/Program.cs b/build/Program.cs index 3ee87d7d54..c1d38e2429 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -25,122 +25,124 @@ namespace ConsoleApplication //lets find the repo var repo = new LibGit2Sharp.Repository(root); - //lets find all the project.json files in the src folder (don't care about versioning tests) + //lets find all the project.json files in the src folder (don't care about versioning `tests`) var projectFiles = Directory.EnumerateFiles(Path.Combine(root, "src"), Project.FileName, SearchOption.AllDirectories); //open them and convert them to source projects var projects = projectFiles.Select(x => ProjectReader.GetProject(x)) .Select(x => new SourceProject(x, repo.Info.WorkingDirectory)) .ToList(); + if (resetmode) { - if (File.Exists("build-inner.bak")) - { - File.Copy("build-inner.bak", "build-inner.cmd", true); - File.Delete("build-inner.bak"); - } - - //revert the project.json change be reverting it but skipp all the git stuff as its not needed - foreach (var p in projects) - { - if (File.Exists($"{p.FullProjectFilePath}.bak")) - { - File.Copy($"{p.FullProjectFilePath}.bak", p.FullProjectFilePath, true); - File.Delete($"{p.FullProjectFilePath}.bak"); - } - Console.WriteLine($"{p.Name} {p.Version.ToFullString()}"); - } + ResetProject(projects); } else - { - // populate the dependency chains - projects.ForEach(x => x.PopulateDependencies(projects)); + { + CaclulateProjectVersionNumber(projects, repo); + + UpdateVersionNumbers(projects); - + CreateBuildScript(projects); + foreach (var p in projects) { - foreach (var c in repo.Commits) - { - // lets apply each commit to the projects looking to see if they effect it or a - // dependency and detect if the commit was one that sent the current version - if (!p.ApplyCommit(c, repo)) - { - // if it did create the version then stop looking this one wins - break; - } - } + Console.WriteLine($"{p.Name} {p.FinalVersionNumber}"); } + } + } - // lets build version friendly commit - string branch = repo.Head.FriendlyName; + private static void CreateBuildScript(IEnumerable projects) + { + var sb = new StringBuilder(); + foreach (var p in projects) + { - // lets see if we are running in appveyor - var appveryorBranch = Environment.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH"); - if (!string.IsNullOrWhiteSpace(appveryorBranch)) - { - branch = appveryorBranch; - } + sb.AppendLine($@"dotnet pack --configuration Release --output ""artifacts\bin\ImageSharp"" ""{p.ProjectFilePath}"""); + } + File.Copy("build-inner.cmd", "build-inner.bak", true); + File.WriteAllText("build-inner.cmd", sb.ToString()); + } - var prNumber = Environment.GetEnvironmentVariable("APPVEYOR_PULL_REQUEST_NUMBER"); - if (!string.IsNullOrWhiteSpace(prNumber)) - { - branch = "PR" + prNumber; - } - if(branch == "(no branch)") - { - throw new Exception("unable to find branch"); - } - branch = branch.Replace("/", "-").Replace("--", "-"); - if (branch == "master") - { - branch = ""; - } + private static void UpdateVersionNumbers(IEnumerable projects) + { + foreach (var p in projects) + { + //TODO force update of all dependent projects to point to the newest build. - var sb = new StringBuilder(); - foreach (var p in projects) - { - //TODO force update of all dependent projects to point to the newest build. + //we skip the build number and standard CI prefix on first commits + var newVersion = p.FinalVersionNumber; + + // create a backup file so we can rollback later without breaking formatting + File.Copy(p.FullProjectFilePath, $"{p.FullProjectFilePath}.bak", true); - //we skip the build number and standard CI prefix on first commits - var newVersion = p.CalculateVersionNumber(branch); - File.Copy(p.FullProjectFilePath, $"{p.FullProjectFilePath}.bak", true); - dynamic projectFile = JsonConvert.DeserializeObject(File.ReadAllText(p.FullProjectFilePath)); + dynamic projectFile = JsonConvert.DeserializeObject(File.ReadAllText(p.FullProjectFilePath)); - projectFile.version = $"{newVersion}-*"; - File.WriteAllText(p.FullProjectFilePath, JsonConvert.SerializeObject(projectFile, Formatting.Indented)); - - Console.WriteLine($"{p.Name} {newVersion}"); + projectFile.version = $"{newVersion}-*"; + File.WriteAllText(p.FullProjectFilePath, JsonConvert.SerializeObject(projectFile, Formatting.Indented)); + } + } - sb.AppendLine($@"dotnet pack --configuration Release --output ""artifacts\bin\ImageSharp"" ""{p.ProjectFilePath}"""); - } + private static string CurrentBranch(Repository repo) + { + // lets build version friendly commit + string branch = repo.Head.FriendlyName; + + // lets see if we are running in appveyor and if we are use the environment variables instead of the head + var appveryorBranch = Environment.GetEnvironmentVariable("APPVEYOR_REPO_BRANCH"); + if (!string.IsNullOrWhiteSpace(appveryorBranch)) + { + branch = appveryorBranch; + } + + var prNumber = Environment.GetEnvironmentVariable("APPVEYOR_PULL_REQUEST_NUMBER"); + if (!string.IsNullOrWhiteSpace(prNumber)) + { + branch = $"PR{int.Parse(prNumber):0000}"; + } - File.Copy("build-inner.cmd", "build-inner.bak", true); - File.WriteAllText("build-inner.cmd", sb.ToString()); + // this will happen when checking out a comit directly and not a branch (like appveryor does when it builds) + if (branch == "(no branch)") + { + throw new Exception("unable to find branch"); } + + // clean branch names (might need to be improved) + branch = branch.Replace("/", "-").Replace("--", "-"); + + return branch; } - + private static void CaclulateProjectVersionNumber(List projects, Repository repo) + { + var branch = CurrentBranch(repo); - //find project root - public static string GetProjectRoot() + // populate the dependency chains + projects.ForEach(x => x.PopulateDependencies(projects)); + + // update the final version based on the repo history and the currentr branch name + projects.ForEach(x => x.CalculateVersion(repo, branch)); + } + + private static void ResetProject(List projects) { - var path = Path.GetFullPath("."); - do + if (File.Exists("build-inner.bak")) { - var jsonPath = Path.Combine(path, "global.json"); - if (File.Exists(jsonPath)) - { - return path; - } - else + File.Copy("build-inner.bak", "build-inner.cmd", true); + File.Delete("build-inner.bak"); + } + + //revert the project.json change be reverting it but skipp all the git stuff as its not needed + foreach (var p in projects) + { + if (File.Exists($"{p.FullProjectFilePath}.bak")) { - path = Path.GetDirectoryName(path); + File.Copy($"{p.FullProjectFilePath}.bak", p.FullProjectFilePath, true); + File.Delete($"{p.FullProjectFilePath}.bak"); } - } while (!string.IsNullOrWhiteSpace(path)); - - return null; + } } - + public class SourceProject { private readonly IEnumerable dependencies; @@ -153,8 +155,9 @@ namespace ConsoleApplication public string Name { get; private set; } public string ProjectFilePath { get; private set; } - private int commitCount = 0; + public int CommitCountSinceVersionChange { get; private set; } = 0; public string FullProjectFilePath { get; private set; } + public string FinalVersionNumber { get; private set; } public SourceProject(Project project, string root) { @@ -164,6 +167,7 @@ namespace ConsoleApplication this.FullProjectFilePath = project.ProjectFilePath; this.Version = project.Version; this.dependencies = project.Dependencies.Select(x => x.Name); + this.FinalVersionNumber = Version.ToFullString(); } public void PopulateDependencies(IEnumerable projects) @@ -186,9 +190,9 @@ namespace ConsoleApplication return false; } - internal bool ApplyCommitInternal(Commit commit, TreeChanges changes, Repository repo) + private bool ApplyCommitInternal(Commit commit, TreeChanges changes, Repository repo) { - commitCount++; + CommitCountSinceVersionChange++; //return false if this is a version number root var projectFileChange = changes.Where(x => x.Path?.Equals(this.ProjectFilePath, StringComparison.OrdinalIgnoreCase) == true).FirstOrDefault(); @@ -212,13 +216,30 @@ namespace ConsoleApplication } } } + // version must have been the same lets carry on return true; } return true; } - internal bool ApplyCommit(Commit commit, Repository repo) + + internal void CalculateVersion(Repository repo, string branch) + { + foreach(var c in repo.Commits) + { + if(!ApplyCommit(c, repo)) + { + + //we have finished lets populate the final version number + this.FinalVersionNumber = CalculateVersionNumber(branch); + + return; + } + } + } + + private bool ApplyCommit(Commit commit, Repository repo) { foreach (var parent in commit.Parents) { @@ -247,53 +268,63 @@ namespace ConsoleApplication return true; } - internal string CalculateVersionNumber(string branch) + private string CalculateVersionNumber(string branch) { var version = this.Version.ToFullString(); - if (this.commitCount == 1 && branch == "") //master only + if (this.CommitCountSinceVersionChange == 1 && branch == "master") //master only { if (this.Version.IsPrerelease) { //prerelease always needs the build counter just not on a branch name - return $"{version}-{this.commitCount:00000}"; + return $"{version}-{this.CommitCountSinceVersionChange:00000}"; } - //only 1 commit (the changing one) we will skip appending suffix + // this is the full release happy path, first commit after changing the version number return version; } - var rootSpecialVersion = ""; if (this.Version.IsPrerelease) { + // probably a much easy way for doing this but it work sell enough for a build script var parts = version.Split(new[] { '-' }, 2); version = parts[0]; rootSpecialVersion = parts[1]; } - if(rootSpecialVersion.Length > 0) + + // if master and the version doesn't manually specify a prerelease tag force one on for CI builds + if (branch == "master") { - rootSpecialVersion = "-" + rootSpecialVersion; + if (!this.Version.IsPrerelease) + { + branch = fallbackTag; + }else + { + branch = ""; + } } - if (branch == "" && !this.Version.IsPrerelease) + + if (rootSpecialVersion.Length > 0) { - branch = fallbackTag; + rootSpecialVersion = "-" + rootSpecialVersion; } if (branch.Length > 0) { branch = "-" + branch; } - var maxLength = 20; - maxLength -= rootSpecialVersion.Length; + var maxLength = 20; // dotnet will fail to populate the package if the tag is > 20 + maxLength -= rootSpecialVersion.Length; // this is a required tag maxLength -= 7; // for the counter and dashes + if(branch.Length > maxLength) { branch = branch.Substring(0, maxLength); } - return $"{version}{rootSpecialVersion}{branch}-{this.commitCount:00000}"; + return $"{version}{rootSpecialVersion}{branch}-{this.CommitCountSinceVersionChange:00000}"; } } } From b4ac6075f46493b9047a83b0e7c09f541d17d843 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 12:31:33 +0000 Subject: [PATCH 15/36] reduce padding on pr tag to fit with alphaX pretag --- build/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/Program.cs b/build/Program.cs index c1d38e2429..47dafb6f95 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -98,7 +98,7 @@ namespace ConsoleApplication var prNumber = Environment.GetEnvironmentVariable("APPVEYOR_PULL_REQUEST_NUMBER"); if (!string.IsNullOrWhiteSpace(prNumber)) { - branch = $"PR{int.Parse(prNumber):0000}"; + branch = $"PR{int.Parse(prNumber):000}"; } // this will happen when checking out a comit directly and not a branch (like appveryor does when it builds) From 07312cee0171c9265d696476800927adcad95e81 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 15:07:19 +0000 Subject: [PATCH 16/36] make travis build all projects --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1ec68deb8f..81e8d789a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,9 +19,8 @@ branches: - coverity_scan script: - - cd src/ImageSharp/ - dotnet restore - - dotnet build -c Release + - dotnet build -c Release src\*\project.json env: global: From e2198d5f55a51ccf3f10724403c3268306645664 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 15:16:35 +0000 Subject: [PATCH 17/36] and now with linux path separators --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 81e8d789a1..6a6f2e166b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ branches: script: - dotnet restore - - dotnet build -c Release src\*\project.json + - dotnet build -c Release src/*/project.json env: global: From b8d89216baebe61c17c9533a83f32147967a57b3 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 15:27:57 +0000 Subject: [PATCH 18/36] fix casing --- build/build.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.cmd b/build/build.cmd index d5a886219b..14fc0bdaa9 100644 --- a/build/build.cmd +++ b/build/build.cmd @@ -1,7 +1,7 @@ @echo Off set buildRoot="%cd%" -ECHO restoring packages +ECHO Restoring packages dotnet restore ECHO Updating version numbers and generating build script From ae77459ab4b1b90a7b8a600b4d30383e72b111c4 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 16:01:15 +0000 Subject: [PATCH 19/36] dropped shared helpers --- .../Helpers/ComparableExtensions.cs | 39 --- .../Helpers/ImageMaths.cs | 30 -- .../Helpers/StreamExtensions.cs | 46 --- .../Helpers/ComparableExtensions.cs | 63 ---- .../Helpers/ByteExtensions.cs | 45 --- .../Helpers/ComparableExtensions.cs | 52 ---- .../Helpers/ImageMaths.cs | 30 -- .../Helpers/StreamExtensions.cs | 46 --- .../ComparableExtensions.cs | 182 ------------ src/ImageSharp.Processing/Constants.cs | 18 -- src/ImageSharp.Processing/ImageMaths.cs | 273 ------------------ src/ImageSharp/Common/Helpers/Guard.cs | 2 +- src/ImageSharp/Properties/AssemblyInfo.cs | 9 +- 13 files changed, 9 insertions(+), 826 deletions(-) delete mode 100644 src/ImageSharp.Formats.Gif/Helpers/ComparableExtensions.cs delete mode 100644 src/ImageSharp.Formats.Gif/Helpers/ImageMaths.cs delete mode 100644 src/ImageSharp.Formats.Gif/Helpers/StreamExtensions.cs delete mode 100644 src/ImageSharp.Formats.Jpeg/Helpers/ComparableExtensions.cs delete mode 100644 src/ImageSharp.Formats.Png/Helpers/ByteExtensions.cs delete mode 100644 src/ImageSharp.Formats.Png/Helpers/ComparableExtensions.cs delete mode 100644 src/ImageSharp.Formats.Png/Helpers/ImageMaths.cs delete mode 100644 src/ImageSharp.Formats.Png/Helpers/StreamExtensions.cs delete mode 100644 src/ImageSharp.Processing/ComparableExtensions.cs delete mode 100644 src/ImageSharp.Processing/Constants.cs delete mode 100644 src/ImageSharp.Processing/ImageMaths.cs diff --git a/src/ImageSharp.Formats.Gif/Helpers/ComparableExtensions.cs b/src/ImageSharp.Formats.Gif/Helpers/ComparableExtensions.cs deleted file mode 100644 index 794c7d7986..0000000000 --- a/src/ImageSharp.Formats.Gif/Helpers/ComparableExtensions.cs +++ /dev/null @@ -1,39 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - - /// - /// Extension methods for classes that implement . - /// - internal static class ComparableExtensions - { - /// - /// Restricts a to be within a specified range. - /// - /// The The value to clamp. - /// The minimum value. If value is less than min, min will be returned. - /// The maximum value. If value is greater than max, max will be returned. - /// - /// The representing the clamped value. - /// - public static int Clamp(this int value, int min, int max) - { - if (value > max) - { - return max; - } - - if (value < min) - { - return min; - } - - return value; - } - } -} diff --git a/src/ImageSharp.Formats.Gif/Helpers/ImageMaths.cs b/src/ImageSharp.Formats.Gif/Helpers/ImageMaths.cs deleted file mode 100644 index 8f377d3af0..0000000000 --- a/src/ImageSharp.Formats.Gif/Helpers/ImageMaths.cs +++ /dev/null @@ -1,30 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.Linq; - using System.Numerics; - - /// - /// Provides common mathematical methods. - /// - internal static class ImageMaths - { - /// - /// Returns how many bits are required to store the specified number of colors. - /// Performs a Log2() on the value. - /// - /// The number of colors. - /// - /// The - /// - public static int GetBitsNeededForColorDepth(int colors) - { - return (int)Math.Ceiling(Math.Log(colors, 2)); - } - } -} diff --git a/src/ImageSharp.Formats.Gif/Helpers/StreamExtensions.cs b/src/ImageSharp.Formats.Gif/Helpers/StreamExtensions.cs deleted file mode 100644 index 6de94dd229..0000000000 --- a/src/ImageSharp.Formats.Gif/Helpers/StreamExtensions.cs +++ /dev/null @@ -1,46 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System.Buffers; - using System.IO; - - /// - /// Extension methods for the type. - /// - internal static class StreamExtensions - { - /// - /// Skips the number of bytes in the given stream. - /// - /// The stream. - /// The count. - public static void Skip(this Stream stream, int count) - { - if (count < 1) - { - return; - } - - if (stream.CanSeek) - { - stream.Position += count; - } - else - { - byte[] foo = ArrayPool.Shared.Rent(count); - try - { - stream.Read(foo, 0, count); - } - finally - { - ArrayPool.Shared.Return(foo); - } - } - } - } -} diff --git a/src/ImageSharp.Formats.Jpeg/Helpers/ComparableExtensions.cs b/src/ImageSharp.Formats.Jpeg/Helpers/ComparableExtensions.cs deleted file mode 100644 index c6c937629a..0000000000 --- a/src/ImageSharp.Formats.Jpeg/Helpers/ComparableExtensions.cs +++ /dev/null @@ -1,63 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - - /// - /// Extension methods for classes that implement . - /// - internal static class ComparableExtensions - { - /// - /// Restricts a to be within a specified range. - /// - /// The The value to clamp. - /// The minimum value. If value is less than min, min will be returned. - /// The maximum value. If value is greater than max, max will be returned. - /// - /// The representing the clamped value. - /// - public static int Clamp(this int value, int min, int max) - { - if (value > max) - { - return max; - } - - if (value < min) - { - return min; - } - - return value; - } - - /// - /// Restricts a to be within a specified range. - /// - /// The The value to clamp. - /// The minimum value. If value is less than min, min will be returned. - /// The maximum value. If value is greater than max, max will be returned. - /// - /// The representing the clamped value. - /// - public static float Clamp(this float value, float min, float max) - { - if (value > max) - { - return max; - } - - if (value < min) - { - return min; - } - - return value; - } - } -} diff --git a/src/ImageSharp.Formats.Png/Helpers/ByteExtensions.cs b/src/ImageSharp.Formats.Png/Helpers/ByteExtensions.cs deleted file mode 100644 index fc9c29e625..0000000000 --- a/src/ImageSharp.Formats.Png/Helpers/ByteExtensions.cs +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - /// - /// Extension methods for the struct. - /// - internal static class ByteExtensions - { - /// - /// Optimized reversal algorithm. - /// - /// The byte array. - public static void ReverseBytes(this byte[] source) - { - ReverseBytes(source, 0, source.Length); - } - - /// - /// Optimized reversal algorithm. - /// - /// The byte array. - /// The index. - /// The length. - /// is null. - public static void ReverseBytes(this byte[] source, int index, int length) - { - Guard.NotNull(source, nameof(source)); - - int i = index; - int j = index + length - 1; - while (i < j) - { - byte temp = source[i]; - source[i] = source[j]; - source[j] = temp; - i++; - j--; - } - } - } -} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Png/Helpers/ComparableExtensions.cs b/src/ImageSharp.Formats.Png/Helpers/ComparableExtensions.cs deleted file mode 100644 index 826f397ce3..0000000000 --- a/src/ImageSharp.Formats.Png/Helpers/ComparableExtensions.cs +++ /dev/null @@ -1,52 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - - /// - /// Extension methods for classes that implement . - /// - internal static class ComparableExtensions - { - /// - /// Restricts a to be within a specified range. - /// - /// The The value to clamp. - /// The minimum value. If value is less than min, min will be returned. - /// The maximum value. If value is greater than max, max will be returned. - /// - /// The representing the clamped value. - /// - public static int Clamp(this int value, int min, int max) - { - if (value > max) - { - return max; - } - - if (value < min) - { - return min; - } - - return value; - } - - /// - /// Swaps the references to two objects in memory. - /// - /// The first reference. - /// The second reference. - /// The type of object. - public static void Swap(ref T first, ref T second) - { - T temp = second; - second = first; - first = temp; - } - } -} diff --git a/src/ImageSharp.Formats.Png/Helpers/ImageMaths.cs b/src/ImageSharp.Formats.Png/Helpers/ImageMaths.cs deleted file mode 100644 index 8f377d3af0..0000000000 --- a/src/ImageSharp.Formats.Png/Helpers/ImageMaths.cs +++ /dev/null @@ -1,30 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.Linq; - using System.Numerics; - - /// - /// Provides common mathematical methods. - /// - internal static class ImageMaths - { - /// - /// Returns how many bits are required to store the specified number of colors. - /// Performs a Log2() on the value. - /// - /// The number of colors. - /// - /// The - /// - public static int GetBitsNeededForColorDepth(int colors) - { - return (int)Math.Ceiling(Math.Log(colors, 2)); - } - } -} diff --git a/src/ImageSharp.Formats.Png/Helpers/StreamExtensions.cs b/src/ImageSharp.Formats.Png/Helpers/StreamExtensions.cs deleted file mode 100644 index 6de94dd229..0000000000 --- a/src/ImageSharp.Formats.Png/Helpers/StreamExtensions.cs +++ /dev/null @@ -1,46 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System.Buffers; - using System.IO; - - /// - /// Extension methods for the type. - /// - internal static class StreamExtensions - { - /// - /// Skips the number of bytes in the given stream. - /// - /// The stream. - /// The count. - public static void Skip(this Stream stream, int count) - { - if (count < 1) - { - return; - } - - if (stream.CanSeek) - { - stream.Position += count; - } - else - { - byte[] foo = ArrayPool.Shared.Rent(count); - try - { - stream.Read(foo, 0, count); - } - finally - { - ArrayPool.Shared.Return(foo); - } - } - } - } -} diff --git a/src/ImageSharp.Processing/ComparableExtensions.cs b/src/ImageSharp.Processing/ComparableExtensions.cs deleted file mode 100644 index 4512e98b73..0000000000 --- a/src/ImageSharp.Processing/ComparableExtensions.cs +++ /dev/null @@ -1,182 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp.Processing -{ - using System; - - /// - /// Extension methods for classes that implement . - /// - internal static class ComparableExtensions - { - /// - /// Restricts a to be within a specified range. - /// - /// The The value to clamp. - /// The minimum value. If value is less than min, min will be returned. - /// The maximum value. If value is greater than max, max will be returned. - /// - /// The representing the clamped value. - /// - public static byte Clamp(this byte value, byte min, byte max) - { - // Order is important here as someone might set min to higher than max. - if (value > max) - { - return max; - } - - if (value < min) - { - return min; - } - - return value; - } - - /// - /// Restricts a to be within a specified range. - /// - /// The The value to clamp. - /// The minimum value. If value is less than min, min will be returned. - /// The maximum value. If value is greater than max, max will be returned. - /// - /// The representing the clamped value. - /// - public static uint Clamp(this uint value, uint min, uint max) - { - if (value > max) - { - return max; - } - - if (value < min) - { - return min; - } - - return value; - } - - /// - /// Restricts a to be within a specified range. - /// - /// The The value to clamp. - /// The minimum value. If value is less than min, min will be returned. - /// The maximum value. If value is greater than max, max will be returned. - /// - /// The representing the clamped value. - /// - public static int Clamp(this int value, int min, int max) - { - if (value > max) - { - return max; - } - - if (value < min) - { - return min; - } - - return value; - } - - /// - /// Restricts a to be within a specified range. - /// - /// The The value to clamp. - /// The minimum value. If value is less than min, min will be returned. - /// The maximum value. If value is greater than max, max will be returned. - /// - /// The representing the clamped value. - /// - public static float Clamp(this float value, float min, float max) - { - if (value > max) - { - return max; - } - - if (value < min) - { - return min; - } - - return value; - } - - /// - /// Restricts a to be within a specified range. - /// - /// The The value to clamp. - /// The minimum value. If value is less than min, min will be returned. - /// The maximum value. If value is greater than max, max will be returned. - /// - /// The representing the clamped value. - /// - public static double Clamp(this double value, double min, double max) - { - if (value > max) - { - return max; - } - - if (value < min) - { - return min; - } - - return value; - } - - /// - /// Converts an to a first restricting the value between the - /// minimum and maximum allowable ranges. - /// - /// The this method extends. - /// The - public static byte ToByte(this int value) - { - return (byte)value.Clamp(0, 255); - } - - /// - /// Converts an to a first restricting the value between the - /// minimum and maximum allowable ranges. - /// - /// The this method extends. - /// The - public static byte ToByte(this float value) - { - return (byte)value.Clamp(0, 255); - } - - /// - /// Converts an to a first restricting the value between the - /// minimum and maximum allowable ranges. - /// - /// The this method extends. - /// The - public static byte ToByte(this double value) - { - return (byte)value.Clamp(0, 255); - } - - /// - /// Swaps the references to two objects in memory. - /// - /// The first reference. - /// The second reference. - /// The type of object. - public static void Swap(ref T first, ref T second) - { - T temp = second; - second = first; - first = temp; - } - } -} diff --git a/src/ImageSharp.Processing/Constants.cs b/src/ImageSharp.Processing/Constants.cs deleted file mode 100644 index 0071471a78..0000000000 --- a/src/ImageSharp.Processing/Constants.cs +++ /dev/null @@ -1,18 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp.Processing -{ - /// - /// Common constants used throughout the project - /// - internal static class Constants - { - /// - /// The epsilon for comparing floating point numbers. - /// - public static readonly float Epsilon = 0.001f; - } -} diff --git a/src/ImageSharp.Processing/ImageMaths.cs b/src/ImageSharp.Processing/ImageMaths.cs deleted file mode 100644 index c2d905b171..0000000000 --- a/src/ImageSharp.Processing/ImageMaths.cs +++ /dev/null @@ -1,273 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp.Processing -{ - using System; - using System.Linq; - using System.Numerics; - - /// - /// Provides common mathematical methods. - /// - internal static class ImageMaths - { - /// - /// Implementation of 1D Gaussian G(x) function - /// - /// The x provided to G(x). - /// The spread of the blur. - /// The Gaussian G(x) - public static float Gaussian(float x, float sigma) - { - const float Numerator = 1.0f; - float denominator = (float)(Math.Sqrt(2 * Math.PI) * sigma); - - float exponentNumerator = -x * x; - float exponentDenominator = (float)(2 * Math.Pow(sigma, 2)); - - float left = Numerator / denominator; - float right = (float)Math.Exp(exponentNumerator / exponentDenominator); - - return left * right; - } - - /// - /// Returns the result of a B-C filter against the given value. - /// - /// - /// The value to process. - /// The B-Spline curve variable. - /// The Cardinal curve variable. - /// - /// The . - /// - public static float GetBcValue(float x, float b, float c) - { - float temp; - - if (x < 0F) - { - x = -x; - } - - temp = x * x; - if (x < 1F) - { - x = ((12 - (9 * b) - (6 * c)) * (x * temp)) + ((-18 + (12 * b) + (6 * c)) * temp) + (6 - (2 * b)); - return x / 6F; - } - - if (x < 2F) - { - x = ((-b - (6 * c)) * (x * temp)) + (((6 * b) + (30 * c)) * temp) + (((-12 * b) - (48 * c)) * x) + ((8 * b) + (24 * c)); - return x / 6F; - } - - return 0F; - } - - /// - /// Gets the result of a sine cardinal function for the given value. - /// - /// The value to calculate the result for. - /// - /// The . - /// - public static float SinC(float x) - { - if (Math.Abs(x) > Constants.Epsilon) - { - x *= (float)Math.PI; - return Clean((float)Math.Sin(x) / x); - } - - return 1.0f; - } - - /// - /// Returns the given degrees converted to radians. - /// - /// The angle in degrees. - /// - /// The representing the degree as radians. - /// - public static float DegreesToRadians(float degrees) - { - return degrees * (float)(Math.PI / 180); - } - - /// - /// Gets the bounding from the given points. - /// - /// - /// The designating the top left position. - /// - /// - /// The designating the bottom right position. - /// - /// - /// The bounding . - /// - public static Rectangle GetBoundingRectangle(Point topLeft, Point bottomRight) - { - return new Rectangle(topLeft.X, topLeft.Y, bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y); - } - - /// - /// Gets the bounding from the given matrix. - /// - /// The source rectangle. - /// The transformation matrix. - /// - /// The . - /// - public static Rectangle GetBoundingRectangle(Rectangle rectangle, Matrix3x2 matrix) - { - Vector2 leftTop = Vector2.Transform(new Vector2(rectangle.Left, rectangle.Top), matrix); - Vector2 rightTop = Vector2.Transform(new Vector2(rectangle.Right, rectangle.Top), matrix); - Vector2 leftBottom = Vector2.Transform(new Vector2(rectangle.Left, rectangle.Bottom), matrix); - Vector2 rightBottom = Vector2.Transform(new Vector2(rectangle.Right, rectangle.Bottom), matrix); - - Vector2[] allCorners = { leftTop, rightTop, leftBottom, rightBottom }; - float extentX = allCorners.Select(v => v.X).Max() - allCorners.Select(v => v.X).Min(); - float extentY = allCorners.Select(v => v.Y).Max() - allCorners.Select(v => v.Y).Min(); - return new Rectangle(0, 0, (int)extentX, (int)extentY); - } - - /// - /// Finds the bounding rectangle based on the first instance of any color component other - /// than the given one. - /// - /// The pixel format. - /// The to search within. - /// The color component value to remove. - /// The channel to test against. - /// - /// The . - /// - public static Rectangle GetFilteredBoundingRectangle(ImageBase bitmap, float componentValue, RgbaComponent channel = RgbaComponent.B) - where TColor : struct, IPackedPixel, IEquatable - { - int width = bitmap.Width; - int height = bitmap.Height; - Point topLeft = default(Point); - Point bottomRight = default(Point); - - Func, int, int, float, bool> delegateFunc; - - // Determine which channel to check against - switch (channel) - { - case RgbaComponent.R: - delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().X - b) > Constants.Epsilon; - break; - - case RgbaComponent.G: - delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().Y - b) > Constants.Epsilon; - break; - - case RgbaComponent.B: - delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().Z - b) > Constants.Epsilon; - break; - - default: - delegateFunc = (pixels, x, y, b) => Math.Abs(pixels[x, y].ToVector4().W - b) > Constants.Epsilon; - break; - } - - Func, int> getMinY = pixels => - { - for (int y = 0; y < height; y++) - { - for (int x = 0; x < width; x++) - { - if (delegateFunc(pixels, x, y, componentValue)) - { - return y; - } - } - } - - return 0; - }; - - Func, int> getMaxY = pixels => - { - for (int y = height - 1; y > -1; y--) - { - for (int x = 0; x < width; x++) - { - if (delegateFunc(pixels, x, y, componentValue)) - { - return y; - } - } - } - - return height; - }; - - Func, int> getMinX = pixels => - { - for (int x = 0; x < width; x++) - { - for (int y = 0; y < height; y++) - { - if (delegateFunc(pixels, x, y, componentValue)) - { - return x; - } - } - } - - return 0; - }; - - Func, int> getMaxX = pixels => - { - for (int x = width - 1; x > -1; x--) - { - for (int y = 0; y < height; y++) - { - if (delegateFunc(pixels, x, y, componentValue)) - { - return x; - } - } - } - - return height; - }; - - using (PixelAccessor bitmapPixels = bitmap.Lock()) - { - topLeft.Y = getMinY(bitmapPixels); - topLeft.X = getMinX(bitmapPixels); - bottomRight.Y = (getMaxY(bitmapPixels) + 1).Clamp(0, height); - bottomRight.X = (getMaxX(bitmapPixels) + 1).Clamp(0, width); - } - - return GetBoundingRectangle(topLeft, bottomRight); - } - - /// - /// Ensures that any passed double is correctly rounded to zero - /// - /// The value to clean. - /// - /// The - /// . - private static float Clean(float x) - { - if (Math.Abs(x) < Constants.Epsilon) - { - return 0F; - } - - return x; - } - } -} diff --git a/src/ImageSharp/Common/Helpers/Guard.cs b/src/ImageSharp/Common/Helpers/Guard.cs index cc05e18005..cf307e9365 100644 --- a/src/ImageSharp/Common/Helpers/Guard.cs +++ b/src/ImageSharp/Common/Helpers/Guard.cs @@ -14,7 +14,7 @@ namespace ImageSharp /// Provides methods to protect against invalid parameters. /// [DebuggerStepThrough] - public static class Guard + internal static class Guard { /// /// Verifies, that the method parameter with specified object value is not null diff --git a/src/ImageSharp/Properties/AssemblyInfo.cs b/src/ImageSharp/Properties/AssemblyInfo.cs index 3a9fc9d7e8..2642cde738 100644 --- a/src/ImageSharp/Properties/AssemblyInfo.cs +++ b/src/ImageSharp/Properties/AssemblyInfo.cs @@ -37,4 +37,11 @@ using System.Runtime.CompilerServices; // Ensure the internals can be tested. [assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] [assembly: InternalsVisibleTo("ImageSharp.Tests")] -[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file + +// Ensure the other projects can see the internal helpers +[assembly: InternalsVisibleTo("ImageSharp.Drawing")] +[assembly: InternalsVisibleTo("ImageSharp.Formats.Bmp")] +[assembly: InternalsVisibleTo("ImageSharp.Formats.Gif")] +[assembly: InternalsVisibleTo("ImageSharp.Formats.Jpeg")] +[assembly: InternalsVisibleTo("ImageSharp.Formats.Png")] +[assembly: InternalsVisibleTo("ImageSharp.Processing")] \ No newline at end of file From 176ad96dd2e58a8073181bc7bc069ce08c3c64fd Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 16:01:36 +0000 Subject: [PATCH 20/36] run tests on travis --- .travis.yml | 1 + tests/ImageSharp.Tests/TestFile.cs | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6a6f2e166b..7e4273d736 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,7 @@ branches: script: - dotnet restore - dotnet build -c Release src/*/project.json + - dotnet test tests\ImageSharp.Tests\project.json -c Release -f "netcoreapp1.1" env: global: diff --git a/tests/ImageSharp.Tests/TestFile.cs b/tests/ImageSharp.Tests/TestFile.cs index 566796bf81..2618549f1e 100644 --- a/tests/ImageSharp.Tests/TestFile.cs +++ b/tests/ImageSharp.Tests/TestFile.cs @@ -9,6 +9,7 @@ namespace ImageSharp.Tests using System.IO; using ImageSharp.Formats; + using System.Linq; /// /// A test image file. @@ -144,14 +145,22 @@ namespace ImageSharp.Tests /// private static string GetFormatsDirectory() { - // Here for code coverage tests. - string directory = "TestImages/Formats/"; - if (Directory.Exists(directory)) + var directories = new[] { + "TestImages/Formats/", // Here for code coverage tests. + "tests/ImageSharp.Tests/TestImages/Formats/", // from travis/build script + "../../../../TestImages/Formats/" + }; + + directories= directories.Select(x => Path.GetFullPath(x)).ToArray(); + + var directory = directories.FirstOrDefault(x => Directory.Exists(x)); + + if(directory != null) { return directory; } - return "../../../../TestImages/Formats/"; + throw new System.Exception($"Unable to find Formats directory at any of these locations [{string.Join(", ", directories)}]"); } } } From 0d12442cbfb43090b6b9d34b9b5001f5fa0aae7b Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 18:21:58 +0000 Subject: [PATCH 21/36] share assembly info --- .travis.yml | 2 +- ImageSharp.sln | 3 ++ .../Properties/AssemblyInfo.cs | 36 +----------------- src/ImageSharp.Drawing/project.json | 5 ++- .../Properties/AssemblyInfo.cs | 36 +----------------- src/ImageSharp.Formats.Bmp/project.json | 5 ++- .../Properties/AssemblyInfo.cs | 36 +----------------- src/ImageSharp.Formats.Gif/project.json | 5 ++- .../Properties/AssemblyInfo.cs | 36 +----------------- src/ImageSharp.Formats.Jpeg/project.json | 5 ++- .../Properties/AssemblyInfo.cs | 36 +----------------- src/ImageSharp.Formats.Png/project.json | 5 ++- .../Properties/AssemblyInfo.cs | 36 +----------------- src/ImageSharp.Formats/project.json | 5 ++- .../Properties/AssemblyInfo.cs | 37 +----------------- src/ImageSharp.Processing/project.json | 5 ++- src/ImageSharp/Properties/AssemblyInfo.cs | 34 ----------------- src/ImageSharp/project.json | 5 ++- src/Shared/AssemblyInfo.Common.cs | 38 +++++++++++++++++++ 19 files changed, 80 insertions(+), 290 deletions(-) create mode 100644 src/Shared/AssemblyInfo.Common.cs diff --git a/.travis.yml b/.travis.yml index 7e4273d736..172079df24 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ branches: script: - dotnet restore - dotnet build -c Release src/*/project.json - - dotnet test tests\ImageSharp.Tests\project.json -c Release -f "netcoreapp1.1" + - dotnet test tests/ImageSharp.Tests/project.json -c Release -f "netcoreapp1.1" env: global: diff --git a/ImageSharp.sln b/ImageSharp.sln index 3164a389e5..6bddeaf564 100644 --- a/ImageSharp.sln +++ b/ImageSharp.sln @@ -49,6 +49,8 @@ Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Png", "s EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Processing", "src\ImageSharp.Processing\ImageSharp.Processing.xproj", "{A623CFE9-9D2B-4528-AD1F-2E834B061134}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{9E574A07-F879-4811-9C41-5CBDC6BAFDB7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -115,5 +117,6 @@ Global {7213767C-0003-41CA-AB18-0223CFA7CE4B} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {556ABDCF-ED93-4327-BE98-F6815F78B9B8} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {A623CFE9-9D2B-4528-AD1F-2E834B061134} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} + {9E574A07-F879-4811-9C41-5CBDC6BAFDB7} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} EndGlobalSection EndGlobal diff --git a/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs b/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs index 8f3982ee42..fba25a9dba 100644 --- a/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs +++ b/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs @@ -3,38 +3,4 @@ // Licensed under the Apache License, Version 2.0. // -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImageSharp")] -[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("James Jackson-South")] -[assembly: AssemblyProduct("ImageSharp")] -[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] - -// Ensure the internals can be tested. -[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] -[assembly: InternalsVisibleTo("ImageSharp.Tests")] -[assembly: InternalsVisibleTo("ImageSharp.Tests46")] +// Common values read from `AssemblyInfo.Common.cs` diff --git a/src/ImageSharp.Drawing/project.json b/src/ImageSharp.Drawing/project.json index 487c26da8e..bcc4351912 100644 --- a/src/ImageSharp.Drawing/project.json +++ b/src/ImageSharp.Drawing/project.json @@ -24,8 +24,9 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ - "/additionalfile:stylecop.json" + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" ] }, "configurations": { diff --git a/src/ImageSharp.Formats.Bmp/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats.Bmp/Properties/AssemblyInfo.cs index c4e0043fdd..d6e98c6d6c 100644 --- a/src/ImageSharp.Formats.Bmp/Properties/AssemblyInfo.cs +++ b/src/ImageSharp.Formats.Bmp/Properties/AssemblyInfo.cs @@ -3,38 +3,4 @@ // Licensed under the Apache License, Version 2.0. // -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] -[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("James Jackson-South")] -[assembly: AssemblyProduct("ImageSharp")] -[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] - -// Ensure the internals can be tested. -[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] -[assembly: InternalsVisibleTo("ImageSharp.Tests")] -[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file +// Common values read from `AssemblyInfo.Common.cs` \ No newline at end of file diff --git a/src/ImageSharp.Formats.Bmp/project.json b/src/ImageSharp.Formats.Bmp/project.json index a646b9a728..9583f869bc 100644 --- a/src/ImageSharp.Formats.Bmp/project.json +++ b/src/ImageSharp.Formats.Bmp/project.json @@ -24,7 +24,10 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] }, "configurations": { "Release": { diff --git a/src/ImageSharp.Formats.Gif/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats.Gif/Properties/AssemblyInfo.cs index c4e0043fdd..d6e98c6d6c 100644 --- a/src/ImageSharp.Formats.Gif/Properties/AssemblyInfo.cs +++ b/src/ImageSharp.Formats.Gif/Properties/AssemblyInfo.cs @@ -3,38 +3,4 @@ // Licensed under the Apache License, Version 2.0. // -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] -[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("James Jackson-South")] -[assembly: AssemblyProduct("ImageSharp")] -[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] - -// Ensure the internals can be tested. -[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] -[assembly: InternalsVisibleTo("ImageSharp.Tests")] -[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file +// Common values read from `AssemblyInfo.Common.cs` \ No newline at end of file diff --git a/src/ImageSharp.Formats.Gif/project.json b/src/ImageSharp.Formats.Gif/project.json index e1aa864d14..4d99635f0e 100644 --- a/src/ImageSharp.Formats.Gif/project.json +++ b/src/ImageSharp.Formats.Gif/project.json @@ -24,7 +24,10 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] }, "configurations": { "Release": { diff --git a/src/ImageSharp.Formats.Jpeg/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats.Jpeg/Properties/AssemblyInfo.cs index c4e0043fdd..d6e98c6d6c 100644 --- a/src/ImageSharp.Formats.Jpeg/Properties/AssemblyInfo.cs +++ b/src/ImageSharp.Formats.Jpeg/Properties/AssemblyInfo.cs @@ -3,38 +3,4 @@ // Licensed under the Apache License, Version 2.0. // -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] -[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("James Jackson-South")] -[assembly: AssemblyProduct("ImageSharp")] -[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] - -// Ensure the internals can be tested. -[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] -[assembly: InternalsVisibleTo("ImageSharp.Tests")] -[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file +// Common values read from `AssemblyInfo.Common.cs` \ No newline at end of file diff --git a/src/ImageSharp.Formats.Jpeg/project.json b/src/ImageSharp.Formats.Jpeg/project.json index c920fe69ed..bb2da4a2f3 100644 --- a/src/ImageSharp.Formats.Jpeg/project.json +++ b/src/ImageSharp.Formats.Jpeg/project.json @@ -24,7 +24,10 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] }, "configurations": { "Release": { diff --git a/src/ImageSharp.Formats.Png/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats.Png/Properties/AssemblyInfo.cs index c4e0043fdd..d6e98c6d6c 100644 --- a/src/ImageSharp.Formats.Png/Properties/AssemblyInfo.cs +++ b/src/ImageSharp.Formats.Png/Properties/AssemblyInfo.cs @@ -3,38 +3,4 @@ // Licensed under the Apache License, Version 2.0. // -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] -[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("James Jackson-South")] -[assembly: AssemblyProduct("ImageSharp")] -[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] - -// Ensure the internals can be tested. -[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] -[assembly: InternalsVisibleTo("ImageSharp.Tests")] -[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file +// Common values read from `AssemblyInfo.Common.cs` \ No newline at end of file diff --git a/src/ImageSharp.Formats.Png/project.json b/src/ImageSharp.Formats.Png/project.json index 014935b08a..4ff5f37486 100644 --- a/src/ImageSharp.Formats.Png/project.json +++ b/src/ImageSharp.Formats.Png/project.json @@ -24,7 +24,10 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] }, "configurations": { "Release": { diff --git a/src/ImageSharp.Formats/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats/Properties/AssemblyInfo.cs index c4e0043fdd..d6e98c6d6c 100644 --- a/src/ImageSharp.Formats/Properties/AssemblyInfo.cs +++ b/src/ImageSharp.Formats/Properties/AssemblyInfo.cs @@ -3,38 +3,4 @@ // Licensed under the Apache License, Version 2.0. // -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImageSharp.Formats.Jpeg")] -[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("James Jackson-South")] -[assembly: AssemblyProduct("ImageSharp")] -[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] - -// Ensure the internals can be tested. -[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] -[assembly: InternalsVisibleTo("ImageSharp.Tests")] -[assembly: InternalsVisibleTo("ImageSharp.Tests46")] \ No newline at end of file +// Common values read from `AssemblyInfo.Common.cs` \ No newline at end of file diff --git a/src/ImageSharp.Formats/project.json b/src/ImageSharp.Formats/project.json index 80b7f01417..a495ad4a9c 100644 --- a/src/ImageSharp.Formats/project.json +++ b/src/ImageSharp.Formats/project.json @@ -24,7 +24,10 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] }, "configurations": { "Release": { diff --git a/src/ImageSharp.Processing/Properties/AssemblyInfo.cs b/src/ImageSharp.Processing/Properties/AssemblyInfo.cs index 83f4268e74..d6e98c6d6c 100644 --- a/src/ImageSharp.Processing/Properties/AssemblyInfo.cs +++ b/src/ImageSharp.Processing/Properties/AssemblyInfo.cs @@ -3,39 +3,4 @@ // Licensed under the Apache License, Version 2.0. // -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImageSharp")] -[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("James Jackson-South")] -[assembly: AssemblyProduct("ImageSharp")] -[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] - -// Ensure the internals can be tested. -[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] -[assembly: InternalsVisibleTo("ImageSharp.Tests")] -[assembly: InternalsVisibleTo("ImageSharp.Tests46")] -[assembly: InternalsVisibleTo("ImageSharp.Drawing")] \ No newline at end of file +// Common values read from `AssemblyInfo.Common.cs` \ No newline at end of file diff --git a/src/ImageSharp.Processing/project.json b/src/ImageSharp.Processing/project.json index e16ebd756f..7a8349b4b3 100644 --- a/src/ImageSharp.Processing/project.json +++ b/src/ImageSharp.Processing/project.json @@ -24,7 +24,10 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] }, "configurations": { "Release": { diff --git a/src/ImageSharp/Properties/AssemblyInfo.cs b/src/ImageSharp/Properties/AssemblyInfo.cs index 2642cde738..407a17b85a 100644 --- a/src/ImageSharp/Properties/AssemblyInfo.cs +++ b/src/ImageSharp/Properties/AssemblyInfo.cs @@ -2,42 +2,8 @@ // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // - -using System.Reflection; -using System.Resources; using System.Runtime.CompilerServices; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImageSharp")] -[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("James Jackson-South")] -[assembly: AssemblyProduct("ImageSharp")] -[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: NeutralResourcesLanguage("en")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: AssemblyInformationalVersion("1.0.0.0")] - -// Ensure the internals can be tested. -[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] -[assembly: InternalsVisibleTo("ImageSharp.Tests")] - // Ensure the other projects can see the internal helpers [assembly: InternalsVisibleTo("ImageSharp.Drawing")] [assembly: InternalsVisibleTo("ImageSharp.Formats.Bmp")] diff --git a/src/ImageSharp/project.json b/src/ImageSharp/project.json index 5efd1fdb24..dcda4bac5f 100644 --- a/src/ImageSharp/project.json +++ b/src/ImageSharp/project.json @@ -24,7 +24,10 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] }, "configurations": { "Release": { diff --git a/src/Shared/AssemblyInfo.Common.cs b/src/Shared/AssemblyInfo.Common.cs new file mode 100644 index 0000000000..09f2d0d023 --- /dev/null +++ b/src/Shared/AssemblyInfo.Common.cs @@ -0,0 +1,38 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyDescription("A cross-platform library for processing of image files; written in C#")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("James Jackson-South")] +[assembly: AssemblyProduct("ImageSharp")] +[assembly: AssemblyCopyright("Copyright (c) James Jackson-South and contributors.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyInformationalVersion("1.0.0.0")] + +// Ensure the internals can be tested. +[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")] +[assembly: InternalsVisibleTo("ImageSharp.Tests")] \ No newline at end of file From 70c0963e8b82e4893a59cb7c08355a598727c9bc Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 18:23:04 +0000 Subject: [PATCH 22/36] revert making clases public --- src/ImageSharp/IO/EndianBinaryWriter.cs | 2 +- src/ImageSharp/IO/Endianness.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ImageSharp/IO/EndianBinaryWriter.cs b/src/ImageSharp/IO/EndianBinaryWriter.cs index d3fc524746..027c2b1f06 100644 --- a/src/ImageSharp/IO/EndianBinaryWriter.cs +++ b/src/ImageSharp/IO/EndianBinaryWriter.cs @@ -13,7 +13,7 @@ namespace ImageSharp.IO /// Equivalent of , but with either endianness, depending on /// the it is constructed with. /// - public class EndianBinaryWriter : IDisposable + internal class EndianBinaryWriter : IDisposable { /// /// Buffer used for temporary storage during conversion from primitives diff --git a/src/ImageSharp/IO/Endianness.cs b/src/ImageSharp/IO/Endianness.cs index 50bfec3465..aefda6dc4b 100644 --- a/src/ImageSharp/IO/Endianness.cs +++ b/src/ImageSharp/IO/Endianness.cs @@ -8,7 +8,7 @@ namespace ImageSharp.IO /// /// Endianness of a converter /// - public enum Endianness + internal enum Endianness { /// /// Little endian - least significant byte first From d1f110526d8028e3f5798c41c40a976db6ff672a Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 19:06:34 +0000 Subject: [PATCH 23/36] Dropped ImageSharpd.Formats We now default load default formats using reflection only for default configuration, not manual. --- ImageSharp.sln | 10 +-- .../ConfigurationExtensions.cs | 32 -------- .../ImageSharp.Formats.xproj | 25 ------ .../Properties/AssemblyInfo.cs | 6 -- src/ImageSharp.Formats/project.json | 76 ------------------- src/ImageSharp.Formats/stylecop.json | 9 --- src/ImageSharp/Configuration.cs | 52 ++++++++++++- tests/ImageSharp.Benchmarks/project.json | 14 +++- tests/ImageSharp.Tests/ConfigurationTests.cs | 8 ++ tests/ImageSharp.Tests/TestBase.cs | 5 -- tests/ImageSharp.Tests/TestFile.cs | 15 +--- tests/ImageSharp.Tests/project.json | 14 +++- 12 files changed, 89 insertions(+), 177 deletions(-) delete mode 100644 src/ImageSharp.Formats/ConfigurationExtensions.cs delete mode 100644 src/ImageSharp.Formats/ImageSharp.Formats.xproj delete mode 100644 src/ImageSharp.Formats/Properties/AssemblyInfo.cs delete mode 100644 src/ImageSharp.Formats/project.json delete mode 100644 src/ImageSharp.Formats/stylecop.json diff --git a/ImageSharp.sln b/ImageSharp.sln index 6bddeaf564..a5e1e12b0f 100644 --- a/ImageSharp.sln +++ b/ImageSharp.sln @@ -37,8 +37,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{E919DF0B EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "build", "build\build.xproj", "{575A5002-DD9F-4335-AA47-1DD87FA13645}" EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats", "src\ImageSharp.Formats\ImageSharp.Formats.xproj", "{C72B8906-260A-4688-9B7A-5CD4BDF419EC}" -EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Bmp", "src\ImageSharp.Formats.Bmp\ImageSharp.Formats.Bmp.xproj", "{C77661B9-F793-422E-8E27-AC60ECC5F215}" EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Formats.Gif", "src\ImageSharp.Formats.Gif\ImageSharp.Formats.Gif.xproj", "{27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F}" @@ -50,6 +48,9 @@ EndProject Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "ImageSharp.Processing", "src\ImageSharp.Processing\ImageSharp.Processing.xproj", "{A623CFE9-9D2B-4528-AD1F-2E834B061134}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{9E574A07-F879-4811-9C41-5CBDC6BAFDB7}" + ProjectSection(SolutionItems) = preProject + src\Shared\AssemblyInfo.Common.cs = src\Shared\AssemblyInfo.Common.cs + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -77,10 +78,6 @@ Global {575A5002-DD9F-4335-AA47-1DD87FA13645}.Debug|Any CPU.Build.0 = Debug|Any CPU {575A5002-DD9F-4335-AA47-1DD87FA13645}.Release|Any CPU.ActiveCfg = Release|Any CPU {575A5002-DD9F-4335-AA47-1DD87FA13645}.Release|Any CPU.Build.0 = Release|Any CPU - {C72B8906-260A-4688-9B7A-5CD4BDF419EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C72B8906-260A-4688-9B7A-5CD4BDF419EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C72B8906-260A-4688-9B7A-5CD4BDF419EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C72B8906-260A-4688-9B7A-5CD4BDF419EC}.Release|Any CPU.Build.0 = Release|Any CPU {C77661B9-F793-422E-8E27-AC60ECC5F215}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C77661B9-F793-422E-8E27-AC60ECC5F215}.Debug|Any CPU.Build.0 = Debug|Any CPU {C77661B9-F793-422E-8E27-AC60ECC5F215}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -111,7 +108,6 @@ Global {299D8E18-102C-42DE-ADBF-79098EE706A8} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC} {2E33181E-6E28-4662-A801-E2E7DC206029} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {575A5002-DD9F-4335-AA47-1DD87FA13645} = {E919DF0B-2607-4462-8FC0-5C98FE50F8C9} - {C72B8906-260A-4688-9B7A-5CD4BDF419EC} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {C77661B9-F793-422E-8E27-AC60ECC5F215} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {27AD4B5F-ECC4-4C63-9ECB-04EC772FDB6F} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} {7213767C-0003-41CA-AB18-0223CFA7CE4B} = {815C0625-CD3D-440F-9F80-2D83856AB7AE} diff --git a/src/ImageSharp.Formats/ConfigurationExtensions.cs b/src/ImageSharp.Formats/ConfigurationExtensions.cs deleted file mode 100644 index f867bcbf60..0000000000 --- a/src/ImageSharp.Formats/ConfigurationExtensions.cs +++ /dev/null @@ -1,32 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class ConfigurationExtensions - { - /// - /// Adds the common formats, PNG, JPEG, GIF and BMP. - /// - /// The config. - /// The config - public static Configuration AddCommonFormats(this Configuration config) - { - return config - .AddPngFormat() - .AddJpegFormat() - .AddGifFormat() - .AddBmpFormat(); - } - } -} diff --git a/src/ImageSharp.Formats/ImageSharp.Formats.xproj b/src/ImageSharp.Formats/ImageSharp.Formats.xproj deleted file mode 100644 index 80a0b84a66..0000000000 --- a/src/ImageSharp.Formats/ImageSharp.Formats.xproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - c72b8906-260a-4688-9b7a-5cd4bdf419ec - ImageSharp.Formats - .\obj - .\bin\ - v4.5.1 - - - 2.0 - - - True - - - - - - \ No newline at end of file diff --git a/src/ImageSharp.Formats/Properties/AssemblyInfo.cs b/src/ImageSharp.Formats/Properties/AssemblyInfo.cs deleted file mode 100644 index d6e98c6d6c..0000000000 --- a/src/ImageSharp.Formats/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -// Common values read from `AssemblyInfo.Common.cs` \ No newline at end of file diff --git a/src/ImageSharp.Formats/project.json b/src/ImageSharp.Formats/project.json deleted file mode 100644 index a495ad4a9c..0000000000 --- a/src/ImageSharp.Formats/project.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "version": "1.0.0-alpha1-*", - "title": "ImageSharp.Formats", - "description": "A cross-platform library for the processing of image files; written in C#", - "authors": [ - "James Jackson-South and contributors" - ], - "packOptions": { - "owners": [ - "James Jackson-South and contributors" - ], - "projectUrl": "https://github.com/JimBobSquarePants/ImageSharp", - "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", - "iconUrl": "https://raw.githubusercontent.com/JimBobSquarePants/ImageSharp/master/build/icons/imagesharp-logo-128.png", - "requireLicenseAcceptance": false, - "repository": { - "type": "git", - "url": "https://github.com/JimBobSquarePants/ImageSharp" - }, - "tags": [ - "Image Resize Crop Gif Jpg Jpeg Bitmap Png Core" - ] - }, - "buildOptions": { - "allowUnsafe": true, - "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], - "compile": [ - "../Shared/*.cs" - ] - }, - "configurations": { - "Release": { - "buildOptions": { - "warningsAsErrors": true, - "optimize": true - } - } - }, - "dependencies": { - "ImageSharp": { - "target": "project", - "version": "1.0.0-*" - }, - "ImageSharp.Formats.Png": { - "target": "project", - "version": "1.0.0-*" - }, - "ImageSharp.Formats.Bmp": { - "target": "project", - "version": "1.0.0-*" - }, - "ImageSharp.Formats.Jpeg": { - "target": "project", - "version": "1.0.0-*" - }, - "ImageSharp.Formats.Gif": { - "target": "project", - "version": "1.0.0-*" - }, - "StyleCop.Analyzers": { - "version": "1.1.0-beta001", - "type": "build" - } - }, - "frameworks": { - "netstandard1.1": { - "dependencies": { - } - }, - "net45": { - "dependencies": { - } - } - } -} \ No newline at end of file diff --git a/src/ImageSharp.Formats/stylecop.json b/src/ImageSharp.Formats/stylecop.json deleted file mode 100644 index df8f120a5b..0000000000 --- a/src/ImageSharp.Formats/stylecop.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", - "settings": { - "documentationRules": { - "companyName": "James Jackson-South", - "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." - } - } -} \ No newline at end of file diff --git a/src/ImageSharp/Configuration.cs b/src/ImageSharp/Configuration.cs index 013c134952..d339042d00 100644 --- a/src/ImageSharp/Configuration.cs +++ b/src/ImageSharp/Configuration.cs @@ -21,7 +21,7 @@ namespace ImageSharp /// /// A lazily initialized configuration default instance. /// - private static readonly Lazy Lazy = new Lazy(() => new Configuration()); + private static readonly Lazy Lazy = new Lazy(() => new Configuration(true)); /// /// An object that can be used to synchronize access to the . @@ -33,6 +33,30 @@ namespace ImageSharp /// private readonly List imageFormatsList = new List(); + /// + /// Initializes a new instance of the class. + /// + public Configuration() + : this(false) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// if set to true [autoload wellknown formats]. + internal Configuration(bool autoloadWellknownFormats) + { + if (autoloadWellknownFormats) + { + // lets try auto loading the known image formats + this.TryAddImageFormat("ImageSharp.Formats.PngFormat, ImageSharp.Formats.Png"); + this.TryAddImageFormat("ImageSharp.Formats.JpegFormat, ImageSharp.Formats.Jpeg"); + this.TryAddImageFormat("ImageSharp.Formats.GifFormat, ImageSharp.Formats.Gif"); + this.TryAddImageFormat("ImageSharp.Formats.BmpFormat, ImageSharp.Formats.Bmp"); + } + } + /// /// Gets the default instance. /// @@ -69,6 +93,32 @@ namespace ImageSharp this.AddImageFormatLocked(format); } + /// + /// Tries the add image format. + /// + /// Name of the type. + /// True if type discoverd and is a valid + internal bool TryAddImageFormat(string typeName) + { + Type type = Type.GetType(typeName, false); + if (type != null) + { + IImageFormat format = Activator.CreateInstance(type) as IImageFormat; + if (format != null + && format.Encoder != null + && format.Decoder != null + && !string.IsNullOrEmpty(format.MimeType) + && format.SupportedExtensions?.Any() == true) + { + // we can use the locked version as we have already validated in the if. + this.AddImageFormatLocked(format); + return true; + } + } + + return false; + } + /// /// Adds image format. The class is locked to make it thread safe. /// diff --git a/tests/ImageSharp.Benchmarks/project.json b/tests/ImageSharp.Benchmarks/project.json index 329a58ec18..10790bc156 100644 --- a/tests/ImageSharp.Benchmarks/project.json +++ b/tests/ImageSharp.Benchmarks/project.json @@ -23,7 +23,19 @@ "target": "project", "version": "1.0.0-*" }, - "ImageSharp.Formats": { + "ImageSharp.Formats.Jpeg": { + "target": "project", + "version": "1.0.0-*" + }, + "ImageSharp.Formats.Png": { + "target": "project", + "version": "1.0.0-*" + }, + "ImageSharp.Formats.Bmp": { + "target": "project", + "version": "1.0.0-*" + }, + "ImageSharp.Formats.Gif": { "target": "project", "version": "1.0.0-*" }, diff --git a/tests/ImageSharp.Tests/ConfigurationTests.cs b/tests/ImageSharp.Tests/ConfigurationTests.cs index 74a0773419..d1618fd187 100644 --- a/tests/ImageSharp.Tests/ConfigurationTests.cs +++ b/tests/ImageSharp.Tests/ConfigurationTests.cs @@ -18,6 +18,14 @@ namespace ImageSharp.Tests /// public class ConfigurationTests { + [Fact] + public void IfAutoloadWellknwonFormatesIsTrueAllFormateAreLoaded() + { + var configuration = new Configuration(true); + + Assert.Equal(4, configuration.ImageFormats.Count); + } + /// /// Test that the default configuration is not null. /// diff --git a/tests/ImageSharp.Tests/TestBase.cs b/tests/ImageSharp.Tests/TestBase.cs index dba93958b0..2b92591eb7 100644 --- a/tests/ImageSharp.Tests/TestBase.cs +++ b/tests/ImageSharp.Tests/TestBase.cs @@ -13,11 +13,6 @@ namespace ImageSharp.Tests /// public abstract class TestBase { - protected TestBase() - { - Configuration.Default.AddCommonFormats(); - } - /// /// Creates the image output directory. /// diff --git a/tests/ImageSharp.Tests/TestFile.cs b/tests/ImageSharp.Tests/TestFile.cs index 2618549f1e..61a6a9f64f 100644 --- a/tests/ImageSharp.Tests/TestFile.cs +++ b/tests/ImageSharp.Tests/TestFile.cs @@ -35,20 +35,7 @@ namespace ImageSharp.Tests /// The file. /// private readonly string file; - - /// - /// Initializes static members of the class. - /// - static TestFile() - { - // Register the individual image formats. - // TODO: Is this the best place to do this? - Configuration.Default.AddImageFormat(new PngFormat()); - Configuration.Default.AddImageFormat(new JpegFormat()); - Configuration.Default.AddImageFormat(new BmpFormat()); - Configuration.Default.AddImageFormat(new GifFormat()); - } - + /// /// Initializes a new instance of the class. /// diff --git a/tests/ImageSharp.Tests/project.json b/tests/ImageSharp.Tests/project.json index b8f19f041a..9f9c0c7150 100644 --- a/tests/ImageSharp.Tests/project.json +++ b/tests/ImageSharp.Tests/project.json @@ -30,7 +30,19 @@ "target": "project", "version": "1.0.0-*" }, - "ImageSharp.Formats": { + "ImageSharp.Formats.Png": { + "target": "project", + "version": "1.0.0-*" + }, + "ImageSharp.Formats.Jpeg": { + "target": "project", + "version": "1.0.0-*" + }, + "ImageSharp.Formats.Bmp": { + "target": "project", + "version": "1.0.0-*" + }, + "ImageSharp.Formats.Gif": { "target": "project", "version": "1.0.0-*" }, From 82d46702377b97f956e8f0429dce64c673439635 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 19:07:48 +0000 Subject: [PATCH 24/36] dropped ToFrame and Clone extensions --- src/ImageSharp.Formats.Gif/ImageExtensions.cs | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/src/ImageSharp.Formats.Gif/ImageExtensions.cs b/src/ImageSharp.Formats.Gif/ImageExtensions.cs index 287305a664..09c836a680 100644 --- a/src/ImageSharp.Formats.Gif/ImageExtensions.cs +++ b/src/ImageSharp.Formats.Gif/ImageExtensions.cs @@ -29,25 +29,5 @@ namespace ImageSharp public static Image SaveAsGif(this Image source, Stream stream, int quality = 256) where TColor : struct, IPackedPixel, IEquatable => source.Save(stream, new GifEncoder { Quality = quality }); - - /// - /// To the frame. - /// - /// The type of the color. - /// The source. - /// The frame - internal static ImageFrame ToFrame(this ImageBase source) - where TColor : struct, IPackedPixel, IEquatable - => new ImageFrame(source); - - /// - /// Clones the specified source. - /// - /// The type of the color. - /// The source. - /// The frame - internal static ImageFrame Clone(this ImageFrame source) - where TColor : struct, IPackedPixel, IEquatable - => new ImageFrame(source); } } From 0b2e792f2680b859a8741b462ec83a8c0c0ad4ac Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 19:18:23 +0000 Subject: [PATCH 25/36] fix namespaces --- src/ImageSharp.Drawing/Brushes/IBrush.cs | 2 +- src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs | 2 +- src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs | 2 +- .../Brushes/{Processors => Processing}/IBrushApplicator.cs | 2 +- src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs | 2 +- src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs | 2 +- src/ImageSharp.Drawing/Draw.cs | 2 +- src/ImageSharp.Drawing/DrawImage.cs | 2 +- src/ImageSharp.Drawing/DrawRectangle.cs | 2 +- src/ImageSharp.Drawing/Fill.cs | 2 +- src/ImageSharp.Drawing/FillRectangle.cs | 2 +- src/ImageSharp.Drawing/Pens/IPen.cs | 2 +- src/ImageSharp.Drawing/Pens/Pen{TColor}.cs | 3 +-- .../Pens/{Processors => Processing}/ColoredPointInfo.cs | 2 +- .../Pens/{Processors => Processing}/IPenApplicator.cs | 2 +- .../{Processors => Processing}/DrawImageProcessor.cs | 5 +++-- .../{Processors => Processing}/DrawPathProcessor.cs | 3 +-- .../{Processors => Processing}/FillProcessor.cs | 2 +- .../{Processors => Processing}/FillShapeProcessor.cs | 2 +- 19 files changed, 21 insertions(+), 22 deletions(-) rename src/ImageSharp.Drawing/Brushes/{Processors => Processing}/IBrushApplicator.cs (95%) rename src/ImageSharp.Drawing/Pens/{Processors => Processing}/ColoredPointInfo.cs (94%) rename src/ImageSharp.Drawing/Pens/{Processors => Processing}/IPenApplicator.cs (96%) rename src/ImageSharp.Drawing/{Processors => Processing}/DrawImageProcessor.cs (98%) rename src/ImageSharp.Drawing/{Processors => Processing}/DrawPathProcessor.cs (98%) rename src/ImageSharp.Drawing/{Processors => Processing}/FillProcessor.cs (98%) rename src/ImageSharp.Drawing/{Processors => Processing}/FillShapeProcessor.cs (99%) diff --git a/src/ImageSharp.Drawing/Brushes/IBrush.cs b/src/ImageSharp.Drawing/Brushes/IBrush.cs index 1eea302a56..bd11b9679f 100644 --- a/src/ImageSharp.Drawing/Brushes/IBrush.cs +++ b/src/ImageSharp.Drawing/Brushes/IBrush.cs @@ -7,7 +7,7 @@ namespace ImageSharp.Drawing { using System; - using Processors; + using Processing; /// /// Brush represents a logical configuration of a brush which can be used to source pixel colors diff --git a/src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs index 5daf03b935..44c7ad82dc 100644 --- a/src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs +++ b/src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Drawing.Brushes using System; using System.Numerics; - using Processors; + using Processing; /// /// Provides an implementation of an image brush for painting images within areas. diff --git a/src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs index 76b11236aa..ca6608b8d4 100644 --- a/src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs +++ b/src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Drawing.Brushes using System; using System.Numerics; - using Processors; + using Processing; /// /// Provides an implementation of a pattern brush for painting patterns. diff --git a/src/ImageSharp.Drawing/Brushes/Processors/IBrushApplicator.cs b/src/ImageSharp.Drawing/Brushes/Processing/IBrushApplicator.cs similarity index 95% rename from src/ImageSharp.Drawing/Brushes/Processors/IBrushApplicator.cs rename to src/ImageSharp.Drawing/Brushes/Processing/IBrushApplicator.cs index 9b09f87db3..676b3d393b 100644 --- a/src/ImageSharp.Drawing/Brushes/Processors/IBrushApplicator.cs +++ b/src/ImageSharp.Drawing/Brushes/Processing/IBrushApplicator.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processors +namespace ImageSharp.Drawing.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs index 35f72c5bfa..25c88c69a7 100644 --- a/src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs +++ b/src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Drawing.Brushes using System; using System.Numerics; - using Processors; + using Processing; /// /// Provides an implementation of a brush that can recolor an image diff --git a/src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs index ac3986bba9..f3c50c702b 100644 --- a/src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs +++ b/src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Drawing.Brushes using System; using System.Numerics; - using Processors; + using Processing; /// /// Provides an implementation of a solid brush for painting solid color areas. diff --git a/src/ImageSharp.Drawing/Draw.cs b/src/ImageSharp.Drawing/Draw.cs index c10665b832..b5e78b48a0 100644 --- a/src/ImageSharp.Drawing/Draw.cs +++ b/src/ImageSharp.Drawing/Draw.cs @@ -11,7 +11,7 @@ namespace ImageSharp using Drawing.Brushes; using Drawing.Paths; using Drawing.Pens; - using Drawing.Processors; + using Drawing.Processing; using Drawing.Shapes; /// diff --git a/src/ImageSharp.Drawing/DrawImage.cs b/src/ImageSharp.Drawing/DrawImage.cs index 4b3fd491da..3a34c167f4 100644 --- a/src/ImageSharp.Drawing/DrawImage.cs +++ b/src/ImageSharp.Drawing/DrawImage.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Drawing.Processors; + using Drawing.Processing; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Drawing/DrawRectangle.cs b/src/ImageSharp.Drawing/DrawRectangle.cs index 38ed578b65..aea82b821c 100644 --- a/src/ImageSharp.Drawing/DrawRectangle.cs +++ b/src/ImageSharp.Drawing/DrawRectangle.cs @@ -11,7 +11,7 @@ namespace ImageSharp using Drawing.Brushes; using Drawing.Paths; using Drawing.Pens; - using Drawing.Processors; + using Drawing.Processing; using Drawing.Shapes; /// diff --git a/src/ImageSharp.Drawing/Fill.cs b/src/ImageSharp.Drawing/Fill.cs index c0f43bdd18..ff817d1d13 100644 --- a/src/ImageSharp.Drawing/Fill.cs +++ b/src/ImageSharp.Drawing/Fill.cs @@ -10,7 +10,7 @@ namespace ImageSharp using Drawing; using Drawing.Brushes; using Drawing.Paths; - using Drawing.Processors; + using Drawing.Processing; using Drawing.Shapes; /// diff --git a/src/ImageSharp.Drawing/FillRectangle.cs b/src/ImageSharp.Drawing/FillRectangle.cs index d29b58e1b8..b8e9337771 100644 --- a/src/ImageSharp.Drawing/FillRectangle.cs +++ b/src/ImageSharp.Drawing/FillRectangle.cs @@ -9,7 +9,7 @@ namespace ImageSharp using Drawing; using Drawing.Brushes; - using Drawing.Processors; + using Drawing.Processing; using Drawing.Shapes; /// diff --git a/src/ImageSharp.Drawing/Pens/IPen.cs b/src/ImageSharp.Drawing/Pens/IPen.cs index 46b4a2c9d6..4b3b6476e1 100644 --- a/src/ImageSharp.Drawing/Pens/IPen.cs +++ b/src/ImageSharp.Drawing/Pens/IPen.cs @@ -6,7 +6,7 @@ namespace ImageSharp.Drawing.Pens { using System; - using Processors; + using Processing; /// /// Interface representing a Pen diff --git a/src/ImageSharp.Drawing/Pens/Pen{TColor}.cs b/src/ImageSharp.Drawing/Pens/Pen{TColor}.cs index e9009f3cb9..5cf7cbc2f4 100644 --- a/src/ImageSharp.Drawing/Pens/Pen{TColor}.cs +++ b/src/ImageSharp.Drawing/Pens/Pen{TColor}.cs @@ -10,8 +10,7 @@ namespace ImageSharp.Drawing.Pens using ImageSharp.Drawing.Brushes; using ImageSharp.Drawing.Paths; - using ImageSharp.Drawing.Pens.Processors; - using ImageSharp.Drawing.Processors; + using Processing; /// /// Provides a pen that can apply a pattern to a line with a set brush and thickness diff --git a/src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs b/src/ImageSharp.Drawing/Pens/Processing/ColoredPointInfo.cs similarity index 94% rename from src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs rename to src/ImageSharp.Drawing/Pens/Processing/ColoredPointInfo.cs index cb5272425f..d0d1277394 100644 --- a/src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs +++ b/src/ImageSharp.Drawing/Pens/Processing/ColoredPointInfo.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Pens.Processors +namespace ImageSharp.Drawing.Processing { using System; diff --git a/src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs b/src/ImageSharp.Drawing/Pens/Processing/IPenApplicator.cs similarity index 96% rename from src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs rename to src/ImageSharp.Drawing/Pens/Processing/IPenApplicator.cs index c8f381a724..438da8283a 100644 --- a/src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs +++ b/src/ImageSharp.Drawing/Pens/Processing/IPenApplicator.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Pens.Processors +namespace ImageSharp.Drawing.Processing { using System; using Paths; diff --git a/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs b/src/ImageSharp.Drawing/Processing/DrawImageProcessor.cs similarity index 98% rename from src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs rename to src/ImageSharp.Drawing/Processing/DrawImageProcessor.cs index 53a94d499f..1cec5019c7 100644 --- a/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs +++ b/src/ImageSharp.Drawing/Processing/DrawImageProcessor.cs @@ -3,12 +3,13 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processors +namespace ImageSharp.Drawing.Processing { using System; using System.Numerics; using System.Threading.Tasks; - using Processing; + + using ImageSharp.Processing; /// /// Combines two images together by blending the pixels. diff --git a/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs b/src/ImageSharp.Drawing/Processing/DrawPathProcessor.cs similarity index 98% rename from src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs rename to src/ImageSharp.Drawing/Processing/DrawPathProcessor.cs index 150f0c4856..4c3f5b960e 100644 --- a/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs +++ b/src/ImageSharp.Drawing/Processing/DrawPathProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processors +namespace ImageSharp.Drawing.Processing { using System; using System.Linq; @@ -12,7 +12,6 @@ namespace ImageSharp.Drawing.Processors using ImageSharp.Processing; using Paths; using Pens; - using Pens.Processors; using Shapes; using Rectangle = ImageSharp.Rectangle; diff --git a/src/ImageSharp.Drawing/Processors/FillProcessor.cs b/src/ImageSharp.Drawing/Processing/FillProcessor.cs similarity index 98% rename from src/ImageSharp.Drawing/Processors/FillProcessor.cs rename to src/ImageSharp.Drawing/Processing/FillProcessor.cs index 309d3670f5..e4fa78fdf4 100644 --- a/src/ImageSharp.Drawing/Processors/FillProcessor.cs +++ b/src/ImageSharp.Drawing/Processing/FillProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processors +namespace ImageSharp.Drawing.Processing { using System; using System.Numerics; diff --git a/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs b/src/ImageSharp.Drawing/Processing/FillShapeProcessor.cs similarity index 99% rename from src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs rename to src/ImageSharp.Drawing/Processing/FillShapeProcessor.cs index d0655341b7..c58aa25604 100644 --- a/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs +++ b/src/ImageSharp.Drawing/Processing/FillShapeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processors +namespace ImageSharp.Drawing.Processing { using System; using System.Numerics; From 53e7e0b565f29e9d06eb58ddc5e949977baa5e31 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Sun, 1 Jan 2017 19:52:33 +0000 Subject: [PATCH 26/36] revert running tests need to investigate issue with tests on linux --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 172079df24..6a6f2e166b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,6 @@ branches: script: - dotnet restore - dotnet build -c Release src/*/project.json - - dotnet test tests/ImageSharp.Tests/project.json -c Release -f "netcoreapp1.1" env: global: From 734b33b69e008ffe0f6329c8ab68feb661d7ab01 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Mon, 2 Jan 2017 09:53:09 +0000 Subject: [PATCH 27/36] Put processors folder/namespace back --- src/ImageSharp.Drawing/Brushes/IBrush.cs | 2 +- .../Brushes/ImageBrush{TColor}.cs | 2 +- .../Brushes/PatternBrush{TColor}.cs | 2 +- .../IBrushApplicator.cs | 2 +- .../Brushes/RecolorBrush{TColor}.cs | 2 +- .../Brushes/SolidBrush{TColor}.cs | 2 +- src/ImageSharp.Drawing/Draw.cs | 2 +- src/ImageSharp.Drawing/DrawImage.cs | 2 +- src/ImageSharp.Drawing/DrawRectangle.cs | 2 +- src/ImageSharp.Drawing/Fill.cs | 2 +- src/ImageSharp.Drawing/FillRectangle.cs | 2 +- src/ImageSharp.Drawing/Pens/IPen.cs | 2 +- src/ImageSharp.Drawing/Pens/Pen{TColor}.cs | 2 +- .../ColoredPointInfo.cs | 2 +- .../{Processing => Processors}/IPenApplicator.cs | 2 +- .../DrawImageProcessor.cs | 2 +- .../DrawPathProcessor.cs | 2 +- .../{Processing => Processors}/FillProcessor.cs | 2 +- .../FillShapeProcessor.cs | 2 +- .../Binarization/BinaryThreshold.cs | 2 +- .../ColorMatrix/BlackWhite.cs | 1 + .../ColorMatrix/ColorBlindness.cs | 15 ++++++++------- .../ColorMatrix/Grayscale.cs | 1 + src/ImageSharp.Processing/ColorMatrix/Hue.cs | 1 + .../ColorMatrix/Kodachrome.cs | 1 + .../ColorMatrix/Lomograph.cs | 1 + .../ColorMatrix/Options/ColorBlindness.cs | 2 +- .../ColorMatrix/Options/GrayscaleMode.cs | 2 +- src/ImageSharp.Processing/ColorMatrix/Polaroid.cs | 1 + .../ColorMatrix/Saturation.cs | 1 + src/ImageSharp.Processing/ColorMatrix/Sepia.cs | 1 + src/ImageSharp.Processing/Convolution/BoxBlur.cs | 1 + .../Convolution/DetectEdges.cs | 1 + .../Convolution/GaussianBlur.cs | 1 + .../Convolution/GaussianSharpen.cs | 1 + .../Convolution/Options/EdgeDetection.cs | 2 +- src/ImageSharp.Processing/Effects/Alpha.cs | 2 +- .../Effects/BackgroundColor.cs | 2 +- src/ImageSharp.Processing/Effects/Brightness.cs | 2 +- src/ImageSharp.Processing/Effects/Contrast.cs | 2 +- src/ImageSharp.Processing/Effects/Invert.cs | 2 +- src/ImageSharp.Processing/Effects/OilPainting.cs | 2 +- src/ImageSharp.Processing/Effects/Pixelate.cs | 2 +- src/ImageSharp.Processing/Overlays/Glow.cs | 2 +- src/ImageSharp.Processing/Overlays/Vignette.cs | 2 +- .../Binarization/BinaryThresholdProcessor.cs | 2 +- .../ColorMatrix/BlackWhiteProcessor.cs | 2 +- .../ColorBlindness/AchromatomalyProcessor.cs | 2 +- .../ColorBlindness/AchromatopsiaProcessor.cs | 2 +- .../ColorBlindness/DeuteranomalyProcessor.cs | 2 +- .../ColorBlindness/DeuteranopiaProcessor.cs | 2 +- .../ColorBlindness/ProtanomalyProcessor.cs | 2 +- .../ColorBlindness/ProtanopiaProcessor.cs | 2 +- .../ColorMatrix/ColorBlindness/README.md | 0 .../ColorBlindness/TritanomalyProcessor.cs | 2 +- .../ColorBlindness/TritanopiaProcessor.cs | 2 +- .../ColorMatrix/ColorMatrixFilter.cs | 2 +- .../ColorMatrix/GrayscaleBt601Processor.cs | 2 +- .../ColorMatrix/GrayscaleBt709Processor.cs | 2 +- .../{ => Processors}/ColorMatrix/HueProcessor.cs | 2 +- .../ColorMatrix/IColorMatrixFilter.cs | 2 +- .../ColorMatrix/KodachromeProcessor.cs | 2 +- .../ColorMatrix/LomographProcessor.cs | 2 +- .../ColorMatrix/PolaroidProcessor.cs | 2 +- .../ColorMatrix/SaturationProcessor.cs | 2 +- .../ColorMatrix/SepiaProcessor.cs | 2 +- .../Convolution/BoxBlurProcessor.cs | 2 +- .../Convolution/Convolution2DProcessor.cs | 2 +- .../Convolution/Convolution2PassProcessor.cs | 2 +- .../Convolution/ConvolutionProcessor.cs | 2 +- .../EdgeDetection/EdgeDetector2DProcessor.cs | 2 +- .../EdgeDetection/EdgeDetectorCompassProcessor.cs | 2 +- .../EdgeDetection/EdgeDetectorProcessor.cs | 2 +- .../EdgeDetection/IEdgeDetectorProcessor.cs | 2 +- .../Convolution/EdgeDetection/KayyaliProcessor.cs | 2 +- .../Convolution/EdgeDetection/KirschProcessor.cs | 2 +- .../EdgeDetection/Laplacian3X3Processor.cs | 2 +- .../EdgeDetection/Laplacian5X5Processor.cs | 2 +- .../EdgeDetection/LaplacianOfGaussianProcessor.cs | 2 +- .../Convolution/EdgeDetection/PrewittProcessor.cs | 2 +- .../EdgeDetection/RobertsCrossProcessor.cs | 2 +- .../EdgeDetection/RobinsonProcessor.cs | 2 +- .../Convolution/EdgeDetection/ScharrProcessor.cs | 2 +- .../Convolution/EdgeDetection/SobelProcessor.cs | 2 +- .../Convolution/GaussianBlurProcessor.cs | 2 +- .../Convolution/GaussianSharpenProcessor.cs | 2 +- .../{ => Processors}/Effects/AlphaProcessor.cs | 2 +- .../Effects/BackgroundColorProcessor.cs | 2 +- .../Effects/BrightnessProcessor.cs | 2 +- .../{ => Processors}/Effects/ContrastProcessor.cs | 2 +- .../{ => Processors}/Effects/InvertProcessor.cs | 2 +- .../Effects/OilPaintingProcessor.cs | 2 +- .../{ => Processors}/Effects/PixelateProcessor.cs | 2 +- .../{ => Processors}/Overlays/GlowProcessor.cs | 2 +- .../Overlays/VignetteProcessor.cs | 2 +- .../Transforms/CompandingResizeProcessor.cs | 2 +- .../{ => Processors}/Transforms/CropProcessor.cs | 2 +- .../Transforms/EntropyCropProcessor.cs | 2 +- .../{ => Processors}/Transforms/FlipProcessor.cs | 2 +- .../Transforms/Matrix3x2Processor.cs | 2 +- .../Transforms/ResamplingWeightedProcessor.cs | 2 +- .../Transforms/ResizeProcessor.cs | 2 +- .../Transforms/RotateProcessor.cs | 2 +- .../{ => Processors}/Transforms/SkewProcessor.cs | 2 +- .../Transforms/AutoOrient.cs | 1 + src/ImageSharp.Processing/Transforms/Crop.cs | 2 +- .../Transforms/EntropyCrop.cs | 2 +- src/ImageSharp.Processing/Transforms/Flip.cs | 1 + src/ImageSharp.Processing/Transforms/Pad.cs | 2 ++ src/ImageSharp.Processing/Transforms/Resize.cs | 1 + src/ImageSharp.Processing/Transforms/Rotate.cs | 1 + src/ImageSharp.Processing/Transforms/Skew.cs | 2 +- .../ImageSharp.Benchmarks/Samplers/DetectEdges.cs | 1 + .../Processors/Filters/ColorBlindnessTest.cs | 1 + .../Processors/Filters/DetectEdgesTest.cs | 1 + .../Processors/Filters/GrayscaleTest.cs | 1 + 116 files changed, 123 insertions(+), 100 deletions(-) rename src/ImageSharp.Drawing/Brushes/{Processing => Processors}/IBrushApplicator.cs (95%) rename src/ImageSharp.Drawing/Pens/{Processing => Processors}/ColoredPointInfo.cs (95%) rename src/ImageSharp.Drawing/Pens/{Processing => Processors}/IPenApplicator.cs (96%) rename src/ImageSharp.Drawing/{Processing => Processors}/DrawImageProcessor.cs (98%) rename src/ImageSharp.Drawing/{Processing => Processors}/DrawPathProcessor.cs (99%) rename src/ImageSharp.Drawing/{Processing => Processors}/FillProcessor.cs (98%) rename src/ImageSharp.Drawing/{Processing => Processors}/FillShapeProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Binarization/BinaryThresholdProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/BlackWhiteProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs (96%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorBlindness/README.md (100%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/ColorMatrixFilter.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/GrayscaleBt601Processor.cs (96%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/GrayscaleBt709Processor.cs (96%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/HueProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/IColorMatrixFilter.cs (94%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/KodachromeProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/LomographProcessor.cs (96%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/PolaroidProcessor.cs (97%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/SaturationProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/ColorMatrix/SepiaProcessor.cs (96%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/BoxBlurProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/Convolution2DProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/Convolution2PassProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/ConvolutionProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs (97%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/EdgeDetectorProcessor.cs (96%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs (95%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/KayyaliProcessor.cs (97%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/KirschProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/Laplacian3X3Processor.cs (96%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/Laplacian5X5Processor.cs (96%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs (96%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/PrewittProcessor.cs (97%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/RobertsCrossProcessor.cs (97%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/RobinsonProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/ScharrProcessor.cs (97%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/EdgeDetection/SobelProcessor.cs (97%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/GaussianBlurProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Convolution/GaussianSharpenProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Effects/AlphaProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Effects/BackgroundColorProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Effects/BrightnessProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Effects/ContrastProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Effects/InvertProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Effects/OilPaintingProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Effects/PixelateProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Overlays/GlowProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Overlays/VignetteProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Transforms/CompandingResizeProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Transforms/CropProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Transforms/EntropyCropProcessor.cs (97%) rename src/ImageSharp.Processing/{ => Processors}/Transforms/FlipProcessor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Transforms/Matrix3x2Processor.cs (98%) rename src/ImageSharp.Processing/{ => Processors}/Transforms/ResamplingWeightedProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Transforms/ResizeProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Transforms/RotateProcessor.cs (99%) rename src/ImageSharp.Processing/{ => Processors}/Transforms/SkewProcessor.cs (98%) diff --git a/src/ImageSharp.Drawing/Brushes/IBrush.cs b/src/ImageSharp.Drawing/Brushes/IBrush.cs index bd11b9679f..1eea302a56 100644 --- a/src/ImageSharp.Drawing/Brushes/IBrush.cs +++ b/src/ImageSharp.Drawing/Brushes/IBrush.cs @@ -7,7 +7,7 @@ namespace ImageSharp.Drawing { using System; - using Processing; + using Processors; /// /// Brush represents a logical configuration of a brush which can be used to source pixel colors diff --git a/src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs index 44c7ad82dc..5daf03b935 100644 --- a/src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs +++ b/src/ImageSharp.Drawing/Brushes/ImageBrush{TColor}.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Drawing.Brushes using System; using System.Numerics; - using Processing; + using Processors; /// /// Provides an implementation of an image brush for painting images within areas. diff --git a/src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs index ca6608b8d4..76b11236aa 100644 --- a/src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs +++ b/src/ImageSharp.Drawing/Brushes/PatternBrush{TColor}.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Drawing.Brushes using System; using System.Numerics; - using Processing; + using Processors; /// /// Provides an implementation of a pattern brush for painting patterns. diff --git a/src/ImageSharp.Drawing/Brushes/Processing/IBrushApplicator.cs b/src/ImageSharp.Drawing/Brushes/Processors/IBrushApplicator.cs similarity index 95% rename from src/ImageSharp.Drawing/Brushes/Processing/IBrushApplicator.cs rename to src/ImageSharp.Drawing/Brushes/Processors/IBrushApplicator.cs index 676b3d393b..9b09f87db3 100644 --- a/src/ImageSharp.Drawing/Brushes/Processing/IBrushApplicator.cs +++ b/src/ImageSharp.Drawing/Brushes/Processors/IBrushApplicator.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processing +namespace ImageSharp.Drawing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs index 25c88c69a7..35f72c5bfa 100644 --- a/src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs +++ b/src/ImageSharp.Drawing/Brushes/RecolorBrush{TColor}.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Drawing.Brushes using System; using System.Numerics; - using Processing; + using Processors; /// /// Provides an implementation of a brush that can recolor an image diff --git a/src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs b/src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs index f3c50c702b..ac3986bba9 100644 --- a/src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs +++ b/src/ImageSharp.Drawing/Brushes/SolidBrush{TColor}.cs @@ -8,7 +8,7 @@ namespace ImageSharp.Drawing.Brushes using System; using System.Numerics; - using Processing; + using Processors; /// /// Provides an implementation of a solid brush for painting solid color areas. diff --git a/src/ImageSharp.Drawing/Draw.cs b/src/ImageSharp.Drawing/Draw.cs index b5e78b48a0..c10665b832 100644 --- a/src/ImageSharp.Drawing/Draw.cs +++ b/src/ImageSharp.Drawing/Draw.cs @@ -11,7 +11,7 @@ namespace ImageSharp using Drawing.Brushes; using Drawing.Paths; using Drawing.Pens; - using Drawing.Processing; + using Drawing.Processors; using Drawing.Shapes; /// diff --git a/src/ImageSharp.Drawing/DrawImage.cs b/src/ImageSharp.Drawing/DrawImage.cs index 3a34c167f4..4b3fd491da 100644 --- a/src/ImageSharp.Drawing/DrawImage.cs +++ b/src/ImageSharp.Drawing/DrawImage.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Drawing.Processing; + using Drawing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Drawing/DrawRectangle.cs b/src/ImageSharp.Drawing/DrawRectangle.cs index aea82b821c..38ed578b65 100644 --- a/src/ImageSharp.Drawing/DrawRectangle.cs +++ b/src/ImageSharp.Drawing/DrawRectangle.cs @@ -11,7 +11,7 @@ namespace ImageSharp using Drawing.Brushes; using Drawing.Paths; using Drawing.Pens; - using Drawing.Processing; + using Drawing.Processors; using Drawing.Shapes; /// diff --git a/src/ImageSharp.Drawing/Fill.cs b/src/ImageSharp.Drawing/Fill.cs index ff817d1d13..c0f43bdd18 100644 --- a/src/ImageSharp.Drawing/Fill.cs +++ b/src/ImageSharp.Drawing/Fill.cs @@ -10,7 +10,7 @@ namespace ImageSharp using Drawing; using Drawing.Brushes; using Drawing.Paths; - using Drawing.Processing; + using Drawing.Processors; using Drawing.Shapes; /// diff --git a/src/ImageSharp.Drawing/FillRectangle.cs b/src/ImageSharp.Drawing/FillRectangle.cs index b8e9337771..d29b58e1b8 100644 --- a/src/ImageSharp.Drawing/FillRectangle.cs +++ b/src/ImageSharp.Drawing/FillRectangle.cs @@ -9,7 +9,7 @@ namespace ImageSharp using Drawing; using Drawing.Brushes; - using Drawing.Processing; + using Drawing.Processors; using Drawing.Shapes; /// diff --git a/src/ImageSharp.Drawing/Pens/IPen.cs b/src/ImageSharp.Drawing/Pens/IPen.cs index 4b3b6476e1..46b4a2c9d6 100644 --- a/src/ImageSharp.Drawing/Pens/IPen.cs +++ b/src/ImageSharp.Drawing/Pens/IPen.cs @@ -6,7 +6,7 @@ namespace ImageSharp.Drawing.Pens { using System; - using Processing; + using Processors; /// /// Interface representing a Pen diff --git a/src/ImageSharp.Drawing/Pens/Pen{TColor}.cs b/src/ImageSharp.Drawing/Pens/Pen{TColor}.cs index 5cf7cbc2f4..0af039ac77 100644 --- a/src/ImageSharp.Drawing/Pens/Pen{TColor}.cs +++ b/src/ImageSharp.Drawing/Pens/Pen{TColor}.cs @@ -10,7 +10,7 @@ namespace ImageSharp.Drawing.Pens using ImageSharp.Drawing.Brushes; using ImageSharp.Drawing.Paths; - using Processing; + using Processors; /// /// Provides a pen that can apply a pattern to a line with a set brush and thickness diff --git a/src/ImageSharp.Drawing/Pens/Processing/ColoredPointInfo.cs b/src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs similarity index 95% rename from src/ImageSharp.Drawing/Pens/Processing/ColoredPointInfo.cs rename to src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs index d0d1277394..494f0f4e4e 100644 --- a/src/ImageSharp.Drawing/Pens/Processing/ColoredPointInfo.cs +++ b/src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processing +namespace ImageSharp.Drawing.Processors { using System; diff --git a/src/ImageSharp.Drawing/Pens/Processing/IPenApplicator.cs b/src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs similarity index 96% rename from src/ImageSharp.Drawing/Pens/Processing/IPenApplicator.cs rename to src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs index 438da8283a..7159dfeec3 100644 --- a/src/ImageSharp.Drawing/Pens/Processing/IPenApplicator.cs +++ b/src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processing +namespace ImageSharp.Drawing.Processors { using System; using Paths; diff --git a/src/ImageSharp.Drawing/Processing/DrawImageProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs similarity index 98% rename from src/ImageSharp.Drawing/Processing/DrawImageProcessor.cs rename to src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs index 1cec5019c7..81b40e6559 100644 --- a/src/ImageSharp.Drawing/Processing/DrawImageProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processing +namespace ImageSharp.Drawing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Drawing/Processing/DrawPathProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs similarity index 99% rename from src/ImageSharp.Drawing/Processing/DrawPathProcessor.cs rename to src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs index 4c3f5b960e..7fcdb95a6f 100644 --- a/src/ImageSharp.Drawing/Processing/DrawPathProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processing +namespace ImageSharp.Drawing.Processors { using System; using System.Linq; diff --git a/src/ImageSharp.Drawing/Processing/FillProcessor.cs b/src/ImageSharp.Drawing/Processors/FillProcessor.cs similarity index 98% rename from src/ImageSharp.Drawing/Processing/FillProcessor.cs rename to src/ImageSharp.Drawing/Processors/FillProcessor.cs index e4fa78fdf4..309d3670f5 100644 --- a/src/ImageSharp.Drawing/Processing/FillProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/FillProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processing +namespace ImageSharp.Drawing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Drawing/Processing/FillShapeProcessor.cs b/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs similarity index 99% rename from src/ImageSharp.Drawing/Processing/FillShapeProcessor.cs rename to src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs index c58aa25604..d0655341b7 100644 --- a/src/ImageSharp.Drawing/Processing/FillShapeProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/FillShapeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Drawing.Processing +namespace ImageSharp.Drawing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Binarization/BinaryThreshold.cs b/src/ImageSharp.Processing/Binarization/BinaryThreshold.cs index e72a854209..1b5b6c9bbc 100644 --- a/src/ImageSharp.Processing/Binarization/BinaryThreshold.cs +++ b/src/ImageSharp.Processing/Binarization/BinaryThreshold.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs b/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs index bcf104de41..e172a21be0 100644 --- a/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs +++ b/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs index 208530616e..2e90b059e7 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -44,31 +45,31 @@ namespace ImageSharp switch (colorBlindness) { - case ImageSharp.ColorBlindness.Achromatomaly: + case ImageSharp.Processing.ColorBlindness.Achromatomaly: processor = new AchromatomalyProcessor(); break; - case ImageSharp.ColorBlindness.Achromatopsia: + case ImageSharp.Processing.ColorBlindness.Achromatopsia: processor = new AchromatopsiaProcessor(); break; - case ImageSharp.ColorBlindness.Deuteranomaly: + case ImageSharp.Processing.ColorBlindness.Deuteranomaly: processor = new DeuteranomalyProcessor(); break; - case ImageSharp.ColorBlindness.Deuteranopia: + case ImageSharp.Processing.ColorBlindness.Deuteranopia: processor = new DeuteranopiaProcessor(); break; - case ImageSharp.ColorBlindness.Protanomaly: + case ImageSharp.Processing.ColorBlindness.Protanomaly: processor = new ProtanomalyProcessor(); break; - case ImageSharp.ColorBlindness.Protanopia: + case ImageSharp.Processing.ColorBlindness.Protanopia: processor = new ProtanopiaProcessor(); break; - case ImageSharp.ColorBlindness.Tritanomaly: + case ImageSharp.Processing.ColorBlindness.Tritanomaly: processor = new TritanomalyProcessor(); break; diff --git a/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs b/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs index a703a08f81..f1a17c02b0 100644 --- a/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/ColorMatrix/Hue.cs b/src/ImageSharp.Processing/ColorMatrix/Hue.cs index 23fc59b446..f03f65692a 100644 --- a/src/ImageSharp.Processing/ColorMatrix/Hue.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Hue.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs b/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs index 127aacc8bb..2592d80909 100644 --- a/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs b/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs index 1e8eabd462..2605bc3011 100644 --- a/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs b/src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs index 1e0bc596b2..def253234f 100644 --- a/src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Enumerates the various types of defined color blindness filters. diff --git a/src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs b/src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs index 6ecd5bb365..f1294ffaff 100644 --- a/src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Enumerates the various types of defined Grayscale filters. diff --git a/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs b/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs index 3b2c672243..5c51a710bf 100644 --- a/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/ColorMatrix/Saturation.cs b/src/ImageSharp.Processing/ColorMatrix/Saturation.cs index fb2c49188d..773329ea6c 100644 --- a/src/ImageSharp.Processing/ColorMatrix/Saturation.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Saturation.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/ColorMatrix/Sepia.cs b/src/ImageSharp.Processing/ColorMatrix/Sepia.cs index 59f2bdded9..3f29b93e59 100644 --- a/src/ImageSharp.Processing/ColorMatrix/Sepia.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Sepia.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Convolution/BoxBlur.cs b/src/ImageSharp.Processing/Convolution/BoxBlur.cs index 4dac449b2b..e16c30516d 100644 --- a/src/ImageSharp.Processing/Convolution/BoxBlur.cs +++ b/src/ImageSharp.Processing/Convolution/BoxBlur.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Convolution/DetectEdges.cs b/src/ImageSharp.Processing/Convolution/DetectEdges.cs index 8b12e75e1e..32fc167f1d 100644 --- a/src/ImageSharp.Processing/Convolution/DetectEdges.cs +++ b/src/ImageSharp.Processing/Convolution/DetectEdges.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Convolution/GaussianBlur.cs b/src/ImageSharp.Processing/Convolution/GaussianBlur.cs index 0b090e2469..7e8b9a4032 100644 --- a/src/ImageSharp.Processing/Convolution/GaussianBlur.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianBlur.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs b/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs index b94384e8c8..ef49104599 100644 --- a/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs b/src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs index 67fad0de41..809992f005 100644 --- a/src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs +++ b/src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp +namespace ImageSharp.Processing { /// /// Enumerates the various types of defined edge detection filters. diff --git a/src/ImageSharp.Processing/Effects/Alpha.cs b/src/ImageSharp.Processing/Effects/Alpha.cs index 84ffc79da9..856276a89e 100644 --- a/src/ImageSharp.Processing/Effects/Alpha.cs +++ b/src/ImageSharp.Processing/Effects/Alpha.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Effects/BackgroundColor.cs b/src/ImageSharp.Processing/Effects/BackgroundColor.cs index 3610a019e7..ac1add3513 100644 --- a/src/ImageSharp.Processing/Effects/BackgroundColor.cs +++ b/src/ImageSharp.Processing/Effects/BackgroundColor.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Effects/Brightness.cs b/src/ImageSharp.Processing/Effects/Brightness.cs index cac23e5fd1..8c9ff8946f 100644 --- a/src/ImageSharp.Processing/Effects/Brightness.cs +++ b/src/ImageSharp.Processing/Effects/Brightness.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Effects/Contrast.cs b/src/ImageSharp.Processing/Effects/Contrast.cs index 11dcaf6bdd..8310286825 100644 --- a/src/ImageSharp.Processing/Effects/Contrast.cs +++ b/src/ImageSharp.Processing/Effects/Contrast.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Effects/Invert.cs b/src/ImageSharp.Processing/Effects/Invert.cs index cb4e159b31..31e524000e 100644 --- a/src/ImageSharp.Processing/Effects/Invert.cs +++ b/src/ImageSharp.Processing/Effects/Invert.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Effects/OilPainting.cs b/src/ImageSharp.Processing/Effects/OilPainting.cs index 591da88f23..463cfd675c 100644 --- a/src/ImageSharp.Processing/Effects/OilPainting.cs +++ b/src/ImageSharp.Processing/Effects/OilPainting.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Effects/Pixelate.cs b/src/ImageSharp.Processing/Effects/Pixelate.cs index 811421b54f..92d1fdd698 100644 --- a/src/ImageSharp.Processing/Effects/Pixelate.cs +++ b/src/ImageSharp.Processing/Effects/Pixelate.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Overlays/Glow.cs b/src/ImageSharp.Processing/Overlays/Glow.cs index 23110126ef..6511407dad 100644 --- a/src/ImageSharp.Processing/Overlays/Glow.cs +++ b/src/ImageSharp.Processing/Overlays/Glow.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Overlays/Vignette.cs b/src/ImageSharp.Processing/Overlays/Vignette.cs index f1db1754a7..f728a3e1c6 100644 --- a/src/ImageSharp.Processing/Overlays/Vignette.cs +++ b/src/ImageSharp.Processing/Overlays/Vignette.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Binarization/BinaryThresholdProcessor.cs b/src/ImageSharp.Processing/Processors/Binarization/BinaryThresholdProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Binarization/BinaryThresholdProcessor.cs rename to src/ImageSharp.Processing/Processors/Binarization/BinaryThresholdProcessor.cs index 9b31b41b72..2eb5225f82 100644 --- a/src/ImageSharp.Processing/Binarization/BinaryThresholdProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Binarization/BinaryThresholdProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp.Processing/ColorMatrix/BlackWhiteProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/BlackWhiteProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/ColorMatrix/BlackWhiteProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/BlackWhiteProcessor.cs index 81869437a8..305375eca1 100644 --- a/src/ImageSharp.Processing/ColorMatrix/BlackWhiteProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/BlackWhiteProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs similarity index 96% rename from src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs index bb768e9a6b..3e34d08382 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs index 790552a0d9..53a7a3556b 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs index edde7a56bd..5d252961c5 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs index e3490c76b1..cd48df4016 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs index 0083cf17f1..234c2e13b5 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs index 7974b6104a..a88b8812e6 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/README.md b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/README.md similarity index 100% rename from src/ImageSharp.Processing/ColorMatrix/ColorBlindness/README.md rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/README.md diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs index 4123c847cd..1f68bddbbb 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs index 5fdb94562f..85332e8106 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/ColorMatrixFilter.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorMatrixFilter.cs similarity index 98% rename from src/ImageSharp.Processing/ColorMatrix/ColorMatrixFilter.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorMatrixFilter.cs index 0c46fa0107..b11b82b102 100644 --- a/src/ImageSharp.Processing/ColorMatrix/ColorMatrixFilter.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorMatrixFilter.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt601Processor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt601Processor.cs similarity index 96% rename from src/ImageSharp.Processing/ColorMatrix/GrayscaleBt601Processor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt601Processor.cs index 1a43cbdf2a..364919e74e 100644 --- a/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt601Processor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt601Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt709Processor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt709Processor.cs similarity index 96% rename from src/ImageSharp.Processing/ColorMatrix/GrayscaleBt709Processor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt709Processor.cs index e210777624..37d41ab74d 100644 --- a/src/ImageSharp.Processing/ColorMatrix/GrayscaleBt709Processor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt709Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/HueProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/HueProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/ColorMatrix/HueProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/HueProcessor.cs index 910e534402..0de0891fea 100644 --- a/src/ImageSharp.Processing/ColorMatrix/HueProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/HueProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/IColorMatrixFilter.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/IColorMatrixFilter.cs similarity index 94% rename from src/ImageSharp.Processing/ColorMatrix/IColorMatrixFilter.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/IColorMatrixFilter.cs index 102688c92b..4230fda12a 100644 --- a/src/ImageSharp.Processing/ColorMatrix/IColorMatrixFilter.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/IColorMatrixFilter.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/KodachromeProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/KodachromeProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/ColorMatrix/KodachromeProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/KodachromeProcessor.cs index 061f7b8a05..84a05e579c 100644 --- a/src/ImageSharp.Processing/ColorMatrix/KodachromeProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/KodachromeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/LomographProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/LomographProcessor.cs similarity index 96% rename from src/ImageSharp.Processing/ColorMatrix/LomographProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/LomographProcessor.cs index dd68705312..731e04bf74 100644 --- a/src/ImageSharp.Processing/ColorMatrix/LomographProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/LomographProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/PolaroidProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/PolaroidProcessor.cs similarity index 97% rename from src/ImageSharp.Processing/ColorMatrix/PolaroidProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/PolaroidProcessor.cs index 679f9051fd..678edf011a 100644 --- a/src/ImageSharp.Processing/ColorMatrix/PolaroidProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/PolaroidProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/SaturationProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/SaturationProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/ColorMatrix/SaturationProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/SaturationProcessor.cs index 7b1f0fd298..430228d53e 100644 --- a/src/ImageSharp.Processing/ColorMatrix/SaturationProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/SaturationProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/ColorMatrix/SepiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/SepiaProcessor.cs similarity index 96% rename from src/ImageSharp.Processing/ColorMatrix/SepiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/SepiaProcessor.cs index ecab1c479c..1170fc3a90 100644 --- a/src/ImageSharp.Processing/ColorMatrix/SepiaProcessor.cs +++ b/src/ImageSharp.Processing/Processors/ColorMatrix/SepiaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Convolution/BoxBlurProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/BoxBlurProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Convolution/BoxBlurProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/BoxBlurProcessor.cs index 389fc0c0c3..272b3cc8b4 100644 --- a/src/ImageSharp.Processing/Convolution/BoxBlurProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/BoxBlurProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp.Processing/Convolution/Convolution2DProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/Convolution2DProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Convolution/Convolution2DProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/Convolution2DProcessor.cs index d9fbf9e701..d6ea42f0c4 100644 --- a/src/ImageSharp.Processing/Convolution/Convolution2DProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/Convolution2DProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Convolution/Convolution2PassProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/Convolution2PassProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Convolution/Convolution2PassProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/Convolution2PassProcessor.cs index c8f2c86b35..ad7ed83ed6 100644 --- a/src/ImageSharp.Processing/Convolution/Convolution2PassProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/Convolution2PassProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Convolution/ConvolutionProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/ConvolutionProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Convolution/ConvolutionProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/ConvolutionProcessor.cs index 3cb139cddb..17d7e2918f 100644 --- a/src/ImageSharp.Processing/Convolution/ConvolutionProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/ConvolutionProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs similarity index 97% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs index 94f7cfebb2..6ee5d0f96a 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs index 1dd526785e..5a1487761f 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs similarity index 96% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs index ef2feba0be..1033111fcb 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/EdgeDetectorProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs similarity index 95% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs index baa0477330..68dc7ccdbb 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/KayyaliProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs similarity index 97% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/KayyaliProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs index b15a46cd19..f628ea1b94 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/KayyaliProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/KirschProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KirschProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/KirschProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KirschProcessor.cs index 63e688ebb9..3f7e0a00ee 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/KirschProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KirschProcessor.cs @@ -2,7 +2,7 @@ // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian3X3Processor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs similarity index 96% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian3X3Processor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs index 8eed6b8d29..b19c5c7737 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian3X3Processor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian5X5Processor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs similarity index 96% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian5X5Processor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs index 7334ecb124..efa6c28c56 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/Laplacian5X5Processor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs similarity index 96% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs index 027e9e20e8..595ca6a4b0 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/PrewittProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/PrewittProcessor.cs similarity index 97% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/PrewittProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/PrewittProcessor.cs index 08189d7622..5c48722ef8 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/PrewittProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/PrewittProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/RobertsCrossProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs similarity index 97% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/RobertsCrossProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs index cc556dfb81..c64ee8abeb 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/RobertsCrossProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/RobinsonProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/RobinsonProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs index 630d8a24dd..4e61707c45 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/RobinsonProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs @@ -2,7 +2,7 @@ // Copyright (c) James Jackson-South and contributors. // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/ScharrProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/ScharrProcessor.cs similarity index 97% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/ScharrProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/ScharrProcessor.cs index 107a145660..de2a185f86 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/ScharrProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/ScharrProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/EdgeDetection/SobelProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/SobelProcessor.cs similarity index 97% rename from src/ImageSharp.Processing/Convolution/EdgeDetection/SobelProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/SobelProcessor.cs index 1fb0bcd51e..328c903dc7 100644 --- a/src/ImageSharp.Processing/Convolution/EdgeDetection/SobelProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/SobelProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp.Processing/Convolution/GaussianBlurProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/GaussianBlurProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Convolution/GaussianBlurProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/GaussianBlurProcessor.cs index 014d0b9e0d..7cd3bbe9c5 100644 --- a/src/ImageSharp.Processing/Convolution/GaussianBlurProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/GaussianBlurProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp.Processing/Convolution/GaussianSharpenProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/GaussianSharpenProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Convolution/GaussianSharpenProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/GaussianSharpenProcessor.cs index 76d0450a9c..d0654dd77b 100644 --- a/src/ImageSharp.Processing/Convolution/GaussianSharpenProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Convolution/GaussianSharpenProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp.Processing/Effects/AlphaProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/AlphaProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Effects/AlphaProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/AlphaProcessor.cs index 498df371eb..ecf47a036c 100644 --- a/src/ImageSharp.Processing/Effects/AlphaProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Effects/AlphaProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Effects/BackgroundColorProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/BackgroundColorProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Effects/BackgroundColorProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/BackgroundColorProcessor.cs index 5511d0a926..356b2e925a 100644 --- a/src/ImageSharp.Processing/Effects/BackgroundColorProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Effects/BackgroundColorProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Effects/BrightnessProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/BrightnessProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Effects/BrightnessProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/BrightnessProcessor.cs index 8423542519..eb88b9c41c 100644 --- a/src/ImageSharp.Processing/Effects/BrightnessProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Effects/BrightnessProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Effects/ContrastProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/ContrastProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Effects/ContrastProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/ContrastProcessor.cs index 7ee72321bf..0cc56cc8e4 100644 --- a/src/ImageSharp.Processing/Effects/ContrastProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Effects/ContrastProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Effects/InvertProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/InvertProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Effects/InvertProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/InvertProcessor.cs index 738c32c882..ec1ea7786e 100644 --- a/src/ImageSharp.Processing/Effects/InvertProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Effects/InvertProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Effects/OilPaintingProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/OilPaintingProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Effects/OilPaintingProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/OilPaintingProcessor.cs index d3f8d55147..9e12a2a91b 100644 --- a/src/ImageSharp.Processing/Effects/OilPaintingProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Effects/OilPaintingProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Effects/PixelateProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/PixelateProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Effects/PixelateProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/PixelateProcessor.cs index 3b62bce792..9c9cf92fec 100644 --- a/src/ImageSharp.Processing/Effects/PixelateProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Effects/PixelateProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Collections.Generic; diff --git a/src/ImageSharp.Processing/Overlays/GlowProcessor.cs b/src/ImageSharp.Processing/Processors/Overlays/GlowProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Overlays/GlowProcessor.cs rename to src/ImageSharp.Processing/Processors/Overlays/GlowProcessor.cs index feff8754ce..f0e32f1fa3 100644 --- a/src/ImageSharp.Processing/Overlays/GlowProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Overlays/GlowProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Overlays/VignetteProcessor.cs b/src/ImageSharp.Processing/Processors/Overlays/VignetteProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Overlays/VignetteProcessor.cs rename to src/ImageSharp.Processing/Processors/Overlays/VignetteProcessor.cs index 7867025eba..8449f18332 100644 --- a/src/ImageSharp.Processing/Overlays/VignetteProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Overlays/VignetteProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Transforms/CompandingResizeProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/CompandingResizeProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Transforms/CompandingResizeProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/CompandingResizeProcessor.cs index 40271ebb4c..a392de0513 100644 --- a/src/ImageSharp.Processing/Transforms/CompandingResizeProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Transforms/CompandingResizeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Transforms/CropProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/CropProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Transforms/CropProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/CropProcessor.cs index 9dfd38737c..27b5bef0c5 100644 --- a/src/ImageSharp.Processing/Transforms/CropProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Transforms/CropProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp.Processing/Transforms/EntropyCropProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/EntropyCropProcessor.cs similarity index 97% rename from src/ImageSharp.Processing/Transforms/EntropyCropProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/EntropyCropProcessor.cs index fc0c649e1a..e0c6e9b92a 100644 --- a/src/ImageSharp.Processing/Transforms/EntropyCropProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Transforms/EntropyCropProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp.Processing/Transforms/FlipProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/FlipProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Transforms/FlipProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/FlipProcessor.cs index f14ca8355d..ba21dced7a 100644 --- a/src/ImageSharp.Processing/Transforms/FlipProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Transforms/FlipProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp.Processing/Transforms/Matrix3x2Processor.cs b/src/ImageSharp.Processing/Processors/Transforms/Matrix3x2Processor.cs similarity index 98% rename from src/ImageSharp.Processing/Transforms/Matrix3x2Processor.cs rename to src/ImageSharp.Processing/Processors/Transforms/Matrix3x2Processor.cs index ba8342e80c..209ad3914b 100644 --- a/src/ImageSharp.Processing/Transforms/Matrix3x2Processor.cs +++ b/src/ImageSharp.Processing/Processors/Transforms/Matrix3x2Processor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Transforms/ResamplingWeightedProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/ResamplingWeightedProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Transforms/ResamplingWeightedProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/ResamplingWeightedProcessor.cs index d64fb2858f..cac8871539 100644 --- a/src/ImageSharp.Processing/Transforms/ResamplingWeightedProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Transforms/ResamplingWeightedProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp.Processing/Transforms/ResizeProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/ResizeProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Transforms/ResizeProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/ResizeProcessor.cs index 10fe68f90c..687e452e6e 100644 --- a/src/ImageSharp.Processing/Transforms/ResizeProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Transforms/ResizeProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Transforms/RotateProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/RotateProcessor.cs similarity index 99% rename from src/ImageSharp.Processing/Transforms/RotateProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/RotateProcessor.cs index 4d28f5bea9..9b9534b390 100644 --- a/src/ImageSharp.Processing/Transforms/RotateProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Transforms/RotateProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Transforms/SkewProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/SkewProcessor.cs similarity index 98% rename from src/ImageSharp.Processing/Transforms/SkewProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/SkewProcessor.cs index 7c6d72c188..c94f69358b 100644 --- a/src/ImageSharp.Processing/Transforms/SkewProcessor.cs +++ b/src/ImageSharp.Processing/Processors/Transforms/SkewProcessor.cs @@ -3,7 +3,7 @@ // Licensed under the Apache License, Version 2.0. // -namespace ImageSharp.Processing +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp.Processing/Transforms/AutoOrient.cs b/src/ImageSharp.Processing/Transforms/AutoOrient.cs index ef5b81a18b..8d86ae8142 100644 --- a/src/ImageSharp.Processing/Transforms/AutoOrient.cs +++ b/src/ImageSharp.Processing/Transforms/AutoOrient.cs @@ -7,6 +7,7 @@ namespace ImageSharp { using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Transforms/Crop.cs b/src/ImageSharp.Processing/Transforms/Crop.cs index 62af260f40..09309a8053 100644 --- a/src/ImageSharp.Processing/Transforms/Crop.cs +++ b/src/ImageSharp.Processing/Transforms/Crop.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Transforms/EntropyCrop.cs b/src/ImageSharp.Processing/Transforms/EntropyCrop.cs index 56c22b119a..8ba6baf19b 100644 --- a/src/ImageSharp.Processing/Transforms/EntropyCrop.cs +++ b/src/ImageSharp.Processing/Transforms/EntropyCrop.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Transforms/Flip.cs b/src/ImageSharp.Processing/Transforms/Flip.cs index 49f0f95d65..4b4c1b7d62 100644 --- a/src/ImageSharp.Processing/Transforms/Flip.cs +++ b/src/ImageSharp.Processing/Transforms/Flip.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Transforms/Pad.cs b/src/ImageSharp.Processing/Transforms/Pad.cs index 0f25ed0641..df45a94f33 100644 --- a/src/ImageSharp.Processing/Transforms/Pad.cs +++ b/src/ImageSharp.Processing/Transforms/Pad.cs @@ -6,7 +6,9 @@ namespace ImageSharp { using System; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Transforms/Resize.cs b/src/ImageSharp.Processing/Transforms/Resize.cs index 992136a217..02a03d79be 100644 --- a/src/ImageSharp.Processing/Transforms/Resize.cs +++ b/src/ImageSharp.Processing/Transforms/Resize.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Transforms/Rotate.cs b/src/ImageSharp.Processing/Transforms/Rotate.cs index 85cfb91e85..b35bbc58ad 100644 --- a/src/ImageSharp.Processing/Transforms/Rotate.cs +++ b/src/ImageSharp.Processing/Transforms/Rotate.cs @@ -8,6 +8,7 @@ namespace ImageSharp using System; using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/src/ImageSharp.Processing/Transforms/Skew.cs b/src/ImageSharp.Processing/Transforms/Skew.cs index 914d9b5eb5..825dce5556 100644 --- a/src/ImageSharp.Processing/Transforms/Skew.cs +++ b/src/ImageSharp.Processing/Transforms/Skew.cs @@ -7,7 +7,7 @@ namespace ImageSharp { using System; - using Processing; + using Processing.Processors; /// /// Extension methods for the type. diff --git a/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs b/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs index eb3e5cb8e1..a1e082bdbb 100644 --- a/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs +++ b/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs @@ -10,6 +10,7 @@ namespace ImageSharp.Benchmarks using BenchmarkDotNet.Attributes; using CoreImage = ImageSharp.Image; + using Processing; public class DetectEdges { diff --git a/tests/ImageSharp.Tests/Processors/Filters/ColorBlindnessTest.cs b/tests/ImageSharp.Tests/Processors/Filters/ColorBlindnessTest.cs index 966514577f..63005733a0 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/ColorBlindnessTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/ColorBlindnessTest.cs @@ -5,6 +5,7 @@ namespace ImageSharp.Tests { + using Processing; using System.IO; using Xunit; diff --git a/tests/ImageSharp.Tests/Processors/Filters/DetectEdgesTest.cs b/tests/ImageSharp.Tests/Processors/Filters/DetectEdgesTest.cs index a650f85ddd..1c3815b9bb 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/DetectEdgesTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/DetectEdgesTest.cs @@ -5,6 +5,7 @@ namespace ImageSharp.Tests { + using Processing; using System.IO; using Xunit; diff --git a/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs b/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs index de6c8620f6..ee4d0b0278 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs @@ -8,6 +8,7 @@ namespace ImageSharp.Tests using System.IO; using Xunit; + using ImageSharp.Processing; public class GrayscaleTest : FileTestBase { From dce713e276b01290db02ced406f2c788e6680839 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Mon, 2 Jan 2017 09:54:21 +0000 Subject: [PATCH 28/36] drop unwanted build cmds --- build/Program.cs | 3 +-- build/build-inner.cmd | 0 build/config.cmd | 8 -------- 3 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 build/build-inner.cmd delete mode 100644 build/config.cmd diff --git a/build/Program.cs b/build/Program.cs index 47dafb6f95..a5818c706e 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -57,10 +57,9 @@ namespace ConsoleApplication var sb = new StringBuilder(); foreach (var p in projects) { - sb.AppendLine($@"dotnet pack --configuration Release --output ""artifacts\bin\ImageSharp"" ""{p.ProjectFilePath}"""); } - File.Copy("build-inner.cmd", "build-inner.bak", true); + File.WriteAllText("build-inner.cmd", sb.ToString()); } diff --git a/build/build-inner.cmd b/build/build-inner.cmd deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/build/config.cmd b/build/config.cmd deleted file mode 100644 index 1619c2b1c2..0000000000 --- a/build/config.cmd +++ /dev/null @@ -1,8 +0,0 @@ -@echo Off -REM ====================== -REM = Configure settings = - -REM Space seperated list of projects to version and package -SET projects=".\src\ImageSharp" ".\src\ImageSharp.Drawing" - -REM ====================== \ No newline at end of file From c6f7ddd458187f22fec4ee6917536799d94e8865 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Mon, 2 Jan 2017 10:11:43 +0000 Subject: [PATCH 29/36] describe versioning statagy --- build/Program.cs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/build/Program.cs b/build/Program.cs index a5818c706e..a3ae8b2eef 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -10,6 +10,39 @@ using System.Text; namespace ConsoleApplication { + /// + /// This updates the version numbers for all the projects in the src folder. + /// The version number it will geneate is dependent on if this is a build from master or a branch/PR + /// + /// If its a build on master + /// We take the version number specified in project.json, + /// count how meny commits the repo has had that will affect this project or its dependencies since the version number of manually changed + /// If this is the first commit that effected this project since number change then leave the version number as defined i.e. will build 1.0.0 if thats in project.json + /// unless it is a preview build number in which case we always add the counter + /// + /// If the build is from a PR/branch + /// We take the version number specified in project.json, append a tag for the branch/PR (so we can determin how each package was built) + /// append number of commits effecting the project. + /// + /// Examples + /// for PR#123 and project.json version 2.0.1 and we have had 30 commits affecting the project + /// we would end up with version number 2.0.1-PR124-00030 + /// + /// for branch `fix-stuff` project.json version 2.0.1-alpha1 and we have had 832 commits affecting the project + /// we would end up with version number 2.0.1-alpha1-fix-stuff-00832 + /// + /// for `master` project.json version 2.0.1-alpha1 and we have had 832 commits affecting the project + /// we would end up with version number 2.0.1-alpha1-00832 + /// + /// for `master` project.json version 2.0.1 and we have had 132 commits affecting the project + /// we would end up with version number 2.0.1-CI-00132 + /// + /// for `master` project.json version 2.0.1 and we have had 1 commits affecting the project + /// we would end up with version number 2.0.1 + /// + /// for `master` project.json version 2.0.1-alpha1 and we have had 1 commits affecting the project + /// we would end up with version number 2.0.1-alpha1 + /// public class Program { const string fallbackTag = "CI"; From 1b24cf12c3ff54998d2bda1648e40accaf8d9121 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Mon, 2 Jan 2017 10:12:01 +0000 Subject: [PATCH 30/36] move to static method --- src/ImageSharp/Configuration.cs | 42 ++++++++------------ tests/ImageSharp.Tests/ConfigurationTests.cs | 2 +- 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/ImageSharp/Configuration.cs b/src/ImageSharp/Configuration.cs index d339042d00..18ba49e4c1 100644 --- a/src/ImageSharp/Configuration.cs +++ b/src/ImageSharp/Configuration.cs @@ -21,7 +21,7 @@ namespace ImageSharp /// /// A lazily initialized configuration default instance. /// - private static readonly Lazy Lazy = new Lazy(() => new Configuration(true)); + private static readonly Lazy Lazy = new Lazy(() => CreateDefaultInstance()); /// /// An object that can be used to synchronize access to the . @@ -33,30 +33,6 @@ namespace ImageSharp /// private readonly List imageFormatsList = new List(); - /// - /// Initializes a new instance of the class. - /// - public Configuration() - : this(false) - { - } - - /// - /// Initializes a new instance of the class. - /// - /// if set to true [autoload wellknown formats]. - internal Configuration(bool autoloadWellknownFormats) - { - if (autoloadWellknownFormats) - { - // lets try auto loading the known image formats - this.TryAddImageFormat("ImageSharp.Formats.PngFormat, ImageSharp.Formats.Png"); - this.TryAddImageFormat("ImageSharp.Formats.JpegFormat, ImageSharp.Formats.Jpeg"); - this.TryAddImageFormat("ImageSharp.Formats.GifFormat, ImageSharp.Formats.Gif"); - this.TryAddImageFormat("ImageSharp.Formats.BmpFormat, ImageSharp.Formats.Bmp"); - } - } - /// /// Gets the default instance. /// @@ -93,6 +69,22 @@ namespace ImageSharp this.AddImageFormatLocked(format); } + /// + /// Creates the default instance, with Png, Jpeg, Gif and Bmp preregisterd (if they have been referenced) + /// + /// The default configuration of + internal static Configuration CreateDefaultInstance() + { + Configuration config = new Configuration(); + + // lets try auto loading the known image formats + config.TryAddImageFormat("ImageSharp.Formats.PngFormat, ImageSharp.Formats.Png"); + config.TryAddImageFormat("ImageSharp.Formats.JpegFormat, ImageSharp.Formats.Jpeg"); + config.TryAddImageFormat("ImageSharp.Formats.GifFormat, ImageSharp.Formats.Gif"); + config.TryAddImageFormat("ImageSharp.Formats.BmpFormat, ImageSharp.Formats.Bmp"); + return config; + } + /// /// Tries the add image format. /// diff --git a/tests/ImageSharp.Tests/ConfigurationTests.cs b/tests/ImageSharp.Tests/ConfigurationTests.cs index d1618fd187..883d235673 100644 --- a/tests/ImageSharp.Tests/ConfigurationTests.cs +++ b/tests/ImageSharp.Tests/ConfigurationTests.cs @@ -21,7 +21,7 @@ namespace ImageSharp.Tests [Fact] public void IfAutoloadWellknwonFormatesIsTrueAllFormateAreLoaded() { - var configuration = new Configuration(true); + var configuration = Configuration.CreateDefaultInstance(); Assert.Equal(4, configuration.ImageFormats.Count); } From d392b90ec9d170cd154f159ce3d3529d6cd28a67 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Mon, 2 Jan 2017 10:13:16 +0000 Subject: [PATCH 31/36] drop configuration extensions --- .../ConfigurationExtensions.cs | 29 ------------------- .../ConfigurationExtensions.cs | 29 ------------------- .../ConfigurationExtensions.cs | 29 ------------------- .../ConfigurationExtensions.cs | 29 ------------------- 4 files changed, 116 deletions(-) delete mode 100644 src/ImageSharp.Formats.Bmp/ConfigurationExtensions.cs delete mode 100644 src/ImageSharp.Formats.Gif/ConfigurationExtensions.cs delete mode 100644 src/ImageSharp.Formats.Jpeg/ConfigurationExtensions.cs delete mode 100644 src/ImageSharp.Formats.Png/ConfigurationExtensions.cs diff --git a/src/ImageSharp.Formats.Bmp/ConfigurationExtensions.cs b/src/ImageSharp.Formats.Bmp/ConfigurationExtensions.cs deleted file mode 100644 index 6f24f96e91..0000000000 --- a/src/ImageSharp.Formats.Bmp/ConfigurationExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class ConfigurationExtensions - { - /// - /// Adds the BMP format. - /// - /// The config. - /// The config - public static Configuration AddBmpFormat(this Configuration config) - { - config.AddImageFormat(new BmpFormat()); - return config; - } - } -} diff --git a/src/ImageSharp.Formats.Gif/ConfigurationExtensions.cs b/src/ImageSharp.Formats.Gif/ConfigurationExtensions.cs deleted file mode 100644 index 3720423cf2..0000000000 --- a/src/ImageSharp.Formats.Gif/ConfigurationExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class ConfigurationExtensions - { - /// - /// Adds the Gif format. - /// - /// The config. - /// The config - public static Configuration AddGifFormat(this Configuration config) - { - config.AddImageFormat(new GifFormat()); - return config; - } - } -} diff --git a/src/ImageSharp.Formats.Jpeg/ConfigurationExtensions.cs b/src/ImageSharp.Formats.Jpeg/ConfigurationExtensions.cs deleted file mode 100644 index 28d49629d6..0000000000 --- a/src/ImageSharp.Formats.Jpeg/ConfigurationExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class ConfigurationExtensions - { - /// - /// Adds the Jpeg format. - /// - /// The config. - /// The config - public static Configuration AddJpegFormat(this Configuration config) - { - config.AddImageFormat(new JpegFormat()); - return config; - } - } -} diff --git a/src/ImageSharp.Formats.Png/ConfigurationExtensions.cs b/src/ImageSharp.Formats.Png/ConfigurationExtensions.cs deleted file mode 100644 index e09f0a0cbb..0000000000 --- a/src/ImageSharp.Formats.Png/ConfigurationExtensions.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) James Jackson-South and contributors. -// Licensed under the Apache License, Version 2.0. -// - -namespace ImageSharp -{ - using System; - using System.IO; - - using Formats; - - /// - /// Extension methods for the type. - /// - public static partial class ConfigurationExtensions - { - /// - /// Adds the Png format. - /// - /// The Image configurations. - /// The Configuration object - public static Configuration AddPngFormat(this Configuration config) - { - config.AddImageFormat(new PngFormat()); - return config; - } - } -} From c5e24a425c27f7342b97134f1843402c31c18d1f Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Mon, 2 Jan 2017 10:16:28 +0000 Subject: [PATCH 32/36] make SyncRoot instance level --- src/ImageSharp/Configuration.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ImageSharp/Configuration.cs b/src/ImageSharp/Configuration.cs index 18ba49e4c1..2596e71b06 100644 --- a/src/ImageSharp/Configuration.cs +++ b/src/ImageSharp/Configuration.cs @@ -26,7 +26,7 @@ namespace ImageSharp /// /// An object that can be used to synchronize access to the . /// - private static readonly object SyncRoot = new object(); + private readonly object SyncRoot = new object(); /// /// The list of supported . From 1440476f701e10ae43d15aba03bdd9e288d5cceb Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Mon, 2 Jan 2017 10:34:17 +0000 Subject: [PATCH 33/36] stylecop cleanup --- ImageSharp.sln | 1 + build/Program.cs | 257 ++++++++++++------ build/project.json | 10 +- src/ImageSharp.Drawing/project.json | 2 +- src/ImageSharp.Formats.Bmp/project.json | 2 +- src/ImageSharp.Formats.Bmp/stylecop.json | 9 - src/ImageSharp.Formats.Gif/project.json | 2 +- src/ImageSharp.Formats.Gif/stylecop.json | 9 - src/ImageSharp.Formats.Jpeg/project.json | 2 +- src/ImageSharp.Formats.Jpeg/stylecop.json | 9 - src/ImageSharp.Formats.Png/project.json | 2 +- src/ImageSharp.Formats.Png/stylecop.json | 9 - src/ImageSharp.Processing/project.json | 2 +- src/ImageSharp.Processing/stylecop.json | 9 - src/ImageSharp/Configuration.cs | 6 +- src/ImageSharp/project.json | 2 +- src/ImageSharp/stylecop.json | 9 - .../stylecop.json | 0 18 files changed, 189 insertions(+), 153 deletions(-) delete mode 100644 src/ImageSharp.Formats.Bmp/stylecop.json delete mode 100644 src/ImageSharp.Formats.Gif/stylecop.json delete mode 100644 src/ImageSharp.Formats.Jpeg/stylecop.json delete mode 100644 src/ImageSharp.Formats.Png/stylecop.json delete mode 100644 src/ImageSharp.Processing/stylecop.json delete mode 100644 src/ImageSharp/stylecop.json rename src/{ImageSharp.Drawing => Shared}/stylecop.json (100%) diff --git a/ImageSharp.sln b/ImageSharp.sln index a5e1e12b0f..1f848b34d1 100644 --- a/ImageSharp.sln +++ b/ImageSharp.sln @@ -50,6 +50,7 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{9E574A07-F879-4811-9C41-5CBDC6BAFDB7}" ProjectSection(SolutionItems) = preProject src\Shared\AssemblyInfo.Common.cs = src\Shared\AssemblyInfo.Common.cs + src\Shared\stylecop.json = src\Shared\stylecop.json EndProjectSection EndProject Global diff --git a/build/Program.cs b/build/Program.cs index a3ae8b2eef..9c70b2490f 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -1,67 +1,80 @@ -using Microsoft.DotNet.ProjectModel; -using System; -using System.IO; -using System.Linq; -using NuGet.Versioning; -using System.Collections.Generic; -using LibGit2Sharp; -using Newtonsoft.Json; -using System.Text; +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// namespace ConsoleApplication { + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Text; + + using LibGit2Sharp; + using Microsoft.DotNet.ProjectModel; + using Newtonsoft.Json; + using NuGet.Versioning; + /// /// This updates the version numbers for all the projects in the src folder. /// The version number it will geneate is dependent on if this is a build from master or a branch/PR - /// + /// /// If its a build on master - /// We take the version number specified in project.json, + /// We take the version number specified in project.json, /// count how meny commits the repo has had that will affect this project or its dependencies since the version number of manually changed /// If this is the first commit that effected this project since number change then leave the version number as defined i.e. will build 1.0.0 if thats in project.json /// unless it is a preview build number in which case we always add the counter - /// + /// /// If the build is from a PR/branch /// We take the version number specified in project.json, append a tag for the branch/PR (so we can determin how each package was built) - /// append number of commits effecting the project. - /// - /// Examples + /// append number of commits effecting the project. + /// + /// + /// /// for PR#123 and project.json version 2.0.1 and we have had 30 commits affecting the project /// we would end up with version number 2.0.1-PR124-00030 - /// + /// /// for branch `fix-stuff` project.json version 2.0.1-alpha1 and we have had 832 commits affecting the project /// we would end up with version number 2.0.1-alpha1-fix-stuff-00832 - /// + /// /// for `master` project.json version 2.0.1-alpha1 and we have had 832 commits affecting the project /// we would end up with version number 2.0.1-alpha1-00832 - /// + /// /// for `master` project.json version 2.0.1 and we have had 132 commits affecting the project /// we would end up with version number 2.0.1-CI-00132 - /// + /// /// for `master` project.json version 2.0.1 and we have had 1 commits affecting the project /// we would end up with version number 2.0.1 - /// + /// /// for `master` project.json version 2.0.1-alpha1 and we have had 1 commits affecting the project /// we would end up with version number 2.0.1-alpha1 - /// + /// + /// + /// TODO Add the option for using this to update the version numbers in a project and its dependent references. + /// public class Program { - const string fallbackTag = "CI"; + private const string FallbackTag = "CI"; + /// + /// Main entry point. + /// + /// The arguments. public static void Main(string[] args) { - // TODO add options to updating the version number for indirvidual projects - var resetmode = args.Contains("reset"); - // find the project root where glbal.json lives + // Find the project root where glbal.json lives var root = ProjectRootResolver.ResolveRootDirectory("."); - //lets find the repo + + // Lets find the repo var repo = new LibGit2Sharp.Repository(root); - //lets find all the project.json files in the src folder (don't care about versioning `tests`) + // Lets find all the project.json files in the src folder (don't care about versioning `tests`) var projectFiles = Directory.EnumerateFiles(Path.Combine(root, "src"), Project.FileName, SearchOption.AllDirectories); - //open them and convert them to source projects + // Open them and convert them to source projects var projects = projectFiles.Select(x => ProjectReader.GetProject(x)) .Select(x => new SourceProject(x, repo.Info.WorkingDirectory)) .ToList(); @@ -77,7 +90,7 @@ namespace ConsoleApplication UpdateVersionNumbers(projects); CreateBuildScript(projects); - + foreach (var p in projects) { Console.WriteLine($"{p.Name} {p.FinalVersionNumber}"); @@ -100,11 +113,10 @@ namespace ConsoleApplication { foreach (var p in projects) { - //TODO force update of all dependent projects to point to the newest build. - - //we skip the build number and standard CI prefix on first commits + // TODO force update of all dependent projects to point to the newest build. + // we skip the build number and standard CI prefix on first commits var newVersion = p.FinalVersionNumber; - + // create a backup file so we can rollback later without breaking formatting File.Copy(p.FullProjectFilePath, $"{p.FullProjectFilePath}.bak", true); @@ -116,7 +128,7 @@ namespace ConsoleApplication } private static string CurrentBranch(Repository repo) - { + { // lets build version friendly commit string branch = repo.Head.FriendlyName; @@ -164,7 +176,7 @@ namespace ConsoleApplication File.Delete("build-inner.bak"); } - //revert the project.json change be reverting it but skipp all the git stuff as its not needed + // revert the project.json change be reverting it but skipp all the git stuff as its not needed foreach (var p in projects) { if (File.Exists($"{p.FullProjectFilePath}.bak")) @@ -174,63 +186,146 @@ namespace ConsoleApplication } } } - + + /// + /// Project level logic + /// public class SourceProject { private readonly IEnumerable dependencies; + /// + /// Initializes a new instance of the class. + /// + /// The project. + /// The root. + public SourceProject(Project project, string root) + { + this.Name = project.Name; + this.ProjectDirectory = project.ProjectDirectory.Substring(root.Length); + this.ProjectFilePath = project.ProjectFilePath.Substring(root.Length); + this.FullProjectFilePath = project.ProjectFilePath; + this.Version = project.Version; + this.dependencies = project.Dependencies.Select(x => x.Name); + this.FinalVersionNumber = this.Version.ToFullString(); + } + + /// + /// Gets the project directory. + /// + /// + /// The project directory. + /// public string ProjectDirectory { get; } + /// + /// Gets the version. + /// + /// + /// The version. + /// public NuGetVersion Version { get; } + /// + /// Gets the dependent projects. + /// + /// + /// The dependent projects. + /// public List DependentProjects { get; private set; } + + /// + /// Gets the name. + /// + /// + /// The name. + /// public string Name { get; private set; } + + /// + /// Gets the project file path. + /// + /// + /// The project file path. + /// public string ProjectFilePath { get; private set; } + /// + /// Gets the commit count since version change. + /// + /// + /// The commit count since version change. + /// public int CommitCountSinceVersionChange { get; private set; } = 0; + + /// + /// Gets the full project file path. + /// + /// + /// The full project file path. + /// public string FullProjectFilePath { get; private set; } + + /// + /// Gets the final version number. + /// + /// + /// The final version number. + /// public string FinalVersionNumber { get; private set; } - public SourceProject(Project project, string root) + /// + /// Populates the dependencies. + /// + /// The projects. + public void PopulateDependencies(IEnumerable projects) { - this.Name = project.Name; - this.ProjectDirectory = project.ProjectDirectory.Substring(root.Length); - this.ProjectFilePath = project.ProjectFilePath.Substring(root.Length); - this.FullProjectFilePath = project.ProjectFilePath; - this.Version = project.Version; - this.dependencies = project.Dependencies.Select(x => x.Name); - this.FinalVersionNumber = Version.ToFullString(); + this.DependentProjects = projects.Where(x => this.dependencies.Contains(x.Name)).ToList(); } - public void PopulateDependencies(IEnumerable projects) + /// + /// Calculates the version. + /// + /// The repo. + /// The branch. + internal void CalculateVersion(Repository repo, string branch) { - DependentProjects = projects.Where(x => dependencies.Contains(x.Name)).ToList(); - + foreach (var c in repo.Commits) + { + if (!this.ApplyCommit(c, repo)) + { + // we have finished lets populate the final version number + this.FinalVersionNumber = this.CalculateVersionNumber(branch); + + return; + } + } } private bool MatchPath(string path) { - if(path.StartsWith(this.ProjectDirectory, StringComparison.OrdinalIgnoreCase)) + if (path.StartsWith(this.ProjectDirectory, StringComparison.OrdinalIgnoreCase)) { return true; } - if (DependentProjects.Any()) + if (this.DependentProjects.Any()) { - return DependentProjects.Any(x => x.MatchPath(path)); + return this.DependentProjects.Any(x => x.MatchPath(path)); } + return false; } private bool ApplyCommitInternal(Commit commit, TreeChanges changes, Repository repo) { - CommitCountSinceVersionChange++; + this.CommitCountSinceVersionChange++; - //return false if this is a version number root + // return false if this is a version number root var projectFileChange = changes.Where(x => x.Path?.Equals(this.ProjectFilePath, StringComparison.OrdinalIgnoreCase) == true).FirstOrDefault(); - if(projectFileChange != null) + if (projectFileChange != null) { - if(projectFileChange.Status == ChangeKind.Added) + if (projectFileChange.Status == ChangeKind.Added) { // the version must have been set here return false; @@ -241,9 +336,9 @@ namespace ConsoleApplication using (var s = blob.GetContentStream()) { var project = new ProjectReader().ReadProject(s, this.Name, this.FullProjectFilePath, null); - if(project.Version != this.Version) + if (project.Version != this.Version) { - //version changed + // version changed return false; } } @@ -256,42 +351,27 @@ namespace ConsoleApplication return true; } - internal void CalculateVersion(Repository repo, string branch) - { - foreach(var c in repo.Commits) - { - if(!ApplyCommit(c, repo)) - { - - //we have finished lets populate the final version number - this.FinalVersionNumber = CalculateVersionNumber(branch); - - return; - } - } - } - private bool ApplyCommit(Commit commit, Repository repo) { foreach (var parent in commit.Parents) { var changes = repo.Diff.Compare(parent.Tree, commit.Tree); - + foreach (TreeEntryChanges change in changes) { if (!string.IsNullOrWhiteSpace(change.OldPath)) { - if (MatchPath(change.OldPath)) + if (this.MatchPath(change.OldPath)) { - return ApplyCommitInternal(commit, changes, repo); + return this.ApplyCommitInternal(commit, changes, repo); } } if (!string.IsNullOrWhiteSpace(change.Path)) { - if (MatchPath(change.Path)) + if (this.MatchPath(change.Path)) { - return ApplyCommitInternal(commit, changes, repo); + return this.ApplyCommitInternal(commit, changes, repo); } } } @@ -303,20 +383,21 @@ namespace ConsoleApplication private string CalculateVersionNumber(string branch) { var version = this.Version.ToFullString(); - - if (this.CommitCountSinceVersionChange == 1 && branch == "master") //master only + + // master only + if (this.CommitCountSinceVersionChange == 1 && branch == "master") { if (this.Version.IsPrerelease) { - //prerelease always needs the build counter just not on a branch name + // prerelease always needs the build counter just not on a branch name return $"{version}-{this.CommitCountSinceVersionChange:00000}"; } - + // this is the full release happy path, first commit after changing the version number return version; } - var rootSpecialVersion = ""; + var rootSpecialVersion = string.Empty; if (this.Version.IsPrerelease) { @@ -331,10 +412,11 @@ namespace ConsoleApplication { if (!this.Version.IsPrerelease) { - branch = fallbackTag; - }else + branch = FallbackTag; + } + else { - branch = ""; + branch = string.Empty; } } @@ -342,6 +424,7 @@ namespace ConsoleApplication { rootSpecialVersion = "-" + rootSpecialVersion; } + if (branch.Length > 0) { branch = "-" + branch; @@ -350,12 +433,12 @@ namespace ConsoleApplication var maxLength = 20; // dotnet will fail to populate the package if the tag is > 20 maxLength -= rootSpecialVersion.Length; // this is a required tag maxLength -= 7; // for the counter and dashes - - if(branch.Length > maxLength) + + if (branch.Length > maxLength) { branch = branch.Substring(0, maxLength); } - + return $"{version}{rootSpecialVersion}{branch}-{this.CommitCountSinceVersionChange:00000}"; } } diff --git a/build/project.json b/build/project.json index 1075b87246..d62c456cb2 100644 --- a/build/project.json +++ b/build/project.json @@ -2,11 +2,17 @@ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", - "emitEntryPoint": true + "emitEntryPoint": true, + "xmlDoc": true, + "additionalArguments": [ "/additionalfile:../src/ImageSharp/stylecop.json", "/ruleset:../ImageSharp.ruleset" ] }, "dependencies": { "Microsoft.DotNet.ProjectModel": "1.0.0-rc3-003121", - "LibGit2Sharp": "0.23.0" + "LibGit2Sharp": "0.23.0", + "StyleCop.Analyzers": { + "version": "1.1.0-beta001", + "type": "build" + } }, "frameworks": { "net46": { diff --git a/src/ImageSharp.Drawing/project.json b/src/ImageSharp.Drawing/project.json index bcc4351912..ece92f438e 100644 --- a/src/ImageSharp.Drawing/project.json +++ b/src/ImageSharp.Drawing/project.json @@ -24,7 +24,7 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "additionalArguments": [ "/additionalfile:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], "compile": [ "../Shared/*.cs" ] diff --git a/src/ImageSharp.Formats.Bmp/project.json b/src/ImageSharp.Formats.Bmp/project.json index 9583f869bc..4ed92c7e5b 100644 --- a/src/ImageSharp.Formats.Bmp/project.json +++ b/src/ImageSharp.Formats.Bmp/project.json @@ -24,7 +24,7 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "additionalArguments": [ "/additionalfile:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], "compile": [ "../Shared/*.cs" ] diff --git a/src/ImageSharp.Formats.Bmp/stylecop.json b/src/ImageSharp.Formats.Bmp/stylecop.json deleted file mode 100644 index df8f120a5b..0000000000 --- a/src/ImageSharp.Formats.Bmp/stylecop.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", - "settings": { - "documentationRules": { - "companyName": "James Jackson-South", - "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." - } - } -} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Gif/project.json b/src/ImageSharp.Formats.Gif/project.json index 4d99635f0e..c0710a3e40 100644 --- a/src/ImageSharp.Formats.Gif/project.json +++ b/src/ImageSharp.Formats.Gif/project.json @@ -24,7 +24,7 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "additionalArguments": [ "/additionalfile:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], "compile": [ "../Shared/*.cs" ] diff --git a/src/ImageSharp.Formats.Gif/stylecop.json b/src/ImageSharp.Formats.Gif/stylecop.json deleted file mode 100644 index df8f120a5b..0000000000 --- a/src/ImageSharp.Formats.Gif/stylecop.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", - "settings": { - "documentationRules": { - "companyName": "James Jackson-South", - "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." - } - } -} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Jpeg/project.json b/src/ImageSharp.Formats.Jpeg/project.json index bb2da4a2f3..6366f507e8 100644 --- a/src/ImageSharp.Formats.Jpeg/project.json +++ b/src/ImageSharp.Formats.Jpeg/project.json @@ -24,7 +24,7 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "additionalArguments": [ "/additionalfile:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], "compile": [ "../Shared/*.cs" ] diff --git a/src/ImageSharp.Formats.Jpeg/stylecop.json b/src/ImageSharp.Formats.Jpeg/stylecop.json deleted file mode 100644 index df8f120a5b..0000000000 --- a/src/ImageSharp.Formats.Jpeg/stylecop.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", - "settings": { - "documentationRules": { - "companyName": "James Jackson-South", - "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." - } - } -} \ No newline at end of file diff --git a/src/ImageSharp.Formats.Png/project.json b/src/ImageSharp.Formats.Png/project.json index 4ff5f37486..bce68ddca5 100644 --- a/src/ImageSharp.Formats.Png/project.json +++ b/src/ImageSharp.Formats.Png/project.json @@ -24,7 +24,7 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "additionalArguments": [ "/additionalfile:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], "compile": [ "../Shared/*.cs" ] diff --git a/src/ImageSharp.Formats.Png/stylecop.json b/src/ImageSharp.Formats.Png/stylecop.json deleted file mode 100644 index df8f120a5b..0000000000 --- a/src/ImageSharp.Formats.Png/stylecop.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", - "settings": { - "documentationRules": { - "companyName": "James Jackson-South", - "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." - } - } -} \ No newline at end of file diff --git a/src/ImageSharp.Processing/project.json b/src/ImageSharp.Processing/project.json index 7a8349b4b3..eb3ea59db6 100644 --- a/src/ImageSharp.Processing/project.json +++ b/src/ImageSharp.Processing/project.json @@ -24,7 +24,7 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "additionalArguments": [ "/additionalfile:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], "compile": [ "../Shared/*.cs" ] diff --git a/src/ImageSharp.Processing/stylecop.json b/src/ImageSharp.Processing/stylecop.json deleted file mode 100644 index df8f120a5b..0000000000 --- a/src/ImageSharp.Processing/stylecop.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", - "settings": { - "documentationRules": { - "companyName": "James Jackson-South", - "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." - } - } -} \ No newline at end of file diff --git a/src/ImageSharp/Configuration.cs b/src/ImageSharp/Configuration.cs index 2596e71b06..daf68d81b4 100644 --- a/src/ImageSharp/Configuration.cs +++ b/src/ImageSharp/Configuration.cs @@ -26,7 +26,7 @@ namespace ImageSharp /// /// An object that can be used to synchronize access to the . /// - private readonly object SyncRoot = new object(); + private readonly object syncRoot = new object(); /// /// The list of supported . @@ -76,7 +76,7 @@ namespace ImageSharp internal static Configuration CreateDefaultInstance() { Configuration config = new Configuration(); - + // lets try auto loading the known image formats config.TryAddImageFormat("ImageSharp.Formats.PngFormat, ImageSharp.Formats.Png"); config.TryAddImageFormat("ImageSharp.Formats.JpegFormat, ImageSharp.Formats.Jpeg"); @@ -117,7 +117,7 @@ namespace ImageSharp /// The image format. private void AddImageFormatLocked(IImageFormat format) { - lock (SyncRoot) + lock (this.syncRoot) { if (this.GuardDuplicate(format)) { diff --git a/src/ImageSharp/project.json b/src/ImageSharp/project.json index dcda4bac5f..8ddaa8bcc2 100644 --- a/src/ImageSharp/project.json +++ b/src/ImageSharp/project.json @@ -24,7 +24,7 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "additionalArguments": [ "/additionalfile:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], "compile": [ "../Shared/*.cs" ] diff --git a/src/ImageSharp/stylecop.json b/src/ImageSharp/stylecop.json deleted file mode 100644 index df8f120a5b..0000000000 --- a/src/ImageSharp/stylecop.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", - "settings": { - "documentationRules": { - "companyName": "James Jackson-South", - "copyrightText": "Copyright (c) James Jackson-South and contributors.\nLicensed under the Apache License, Version 2.0." - } - } -} \ No newline at end of file diff --git a/src/ImageSharp.Drawing/stylecop.json b/src/Shared/stylecop.json similarity index 100% rename from src/ImageSharp.Drawing/stylecop.json rename to src/Shared/stylecop.json From 094f1dbd343a590c0c4d4638aef3b11f5b905933 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Wed, 4 Jan 2017 07:12:16 +0000 Subject: [PATCH 34/36] fixed stylecop path --- build/Program.cs | 5 ++--- build/project.json | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/build/Program.cs b/build/Program.cs index 9c70b2490f..a79743393c 100644 --- a/build/Program.cs +++ b/build/Program.cs @@ -170,10 +170,9 @@ namespace ConsoleApplication private static void ResetProject(List projects) { - if (File.Exists("build-inner.bak")) + if (File.Exists("build-inner.cmd")) { - File.Copy("build-inner.bak", "build-inner.cmd", true); - File.Delete("build-inner.bak"); + File.Delete("build-inner.cmd"); } // revert the project.json change be reverting it but skipp all the git stuff as its not needed diff --git a/build/project.json b/build/project.json index d62c456cb2..cf95cc8a0b 100644 --- a/build/project.json +++ b/build/project.json @@ -4,7 +4,7 @@ "debugType": "portable", "emitEntryPoint": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:../src/ImageSharp/stylecop.json", "/ruleset:../ImageSharp.ruleset" ] + "additionalArguments": [ "/additionalfile:../src/Shared/stylecop.json", "/ruleset:../ImageSharp.ruleset" ] }, "dependencies": { "Microsoft.DotNet.ProjectModel": "1.0.0-rc3-003121", From 8687566fa71091af354fb9f7b8730c7edea03719 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Wed, 4 Jan 2017 07:12:32 +0000 Subject: [PATCH 35/36] added projected to readme --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 24145f7f91..702a363a8d 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,27 @@ At present the code is pre-release but when ready it will be available on [Nuget We already have a [MyGet package repository](https://www.myget.org/gallery/imagesharp) - for bleeding-edge / development NuGet releases. +### Packages + +The **ImageSharp** library is made up of multiple packages, to make **ImageShape** so anything useful you will want to make sure you include at least 1 Format as a dependency otherwise you will note be able to save/load any images. + +Packages include; +- **ImageSharp** + Contains the Image classes, Colors, Primitives, Bootstrapper, IImageFormat interface, and other core functionality. +- **ImageSharp.Formats.Jpeg** + The jpeg decoder/encoder (Auto registered) +- **ImageSharp.Formats.Png** + The png decoder/encoder (Auto registered) +- **ImageSharp.Formats.Gif** + The gif decoder/encoder (Auto registered) +- **ImageSharp.Formats.Bmp** + The bmp decoder/encoder (Auto registered) +- **ImageSharp.Processing** + Contains methods like Resize, Crop, Skew, Rotate - Anything that alters the dimensions of the image. + Contains methods like Gaussian Blur, Pixelate, Edge Detection - Anything that maintains the original image dimensions. +- **ImageSharp.Drawing** + Brushes and various drawing algorithms. + ### Manual build If you prefer, you can compile ImageSharp yourself (please do and help!), you'll need: From 9e8d36c900fcf9e80929952b1af9dd82e5a9ce13 Mon Sep 17 00:00:00 2001 From: Scott Williams Date: Wed, 4 Jan 2017 07:16:26 +0000 Subject: [PATCH 36/36] fixed typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 702a363a8d..918ee91747 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ We already have a [MyGet package repository](https://www.myget.org/gallery/image ### Packages -The **ImageSharp** library is made up of multiple packages, to make **ImageShape** so anything useful you will want to make sure you include at least 1 Format as a dependency otherwise you will note be able to save/load any images. +The **ImageSharp** library is made up of multiple packages, to make **ImageSharp** do anything useful you will want to make sure you include at least one format as a dependency otherwise you will not be able to save/load any images. Packages include; - **ImageSharp**