diff --git a/.travis.yml b/.travis.yml index 1ec68deb8f..6a6f2e166b 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: diff --git a/ImageSharp.sln b/ImageSharp.sln index e949d1d579..1f848b34d1 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 @@ -33,6 +31,28 @@ 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 +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 +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 +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 + src\Shared\stylecop.json = src\Shared\stylecop.json + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -51,6 +71,34 @@ 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 + {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 + {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 + {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 @@ -59,5 +107,13 @@ 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} + {575A5002-DD9F-4335-AA47-1DD87FA13645} = {E919DF0B-2607-4462-8FC0-5C98FE50F8C9} + {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} + {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/README.md b/README.md index 24145f7f91..918ee91747 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 **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** + 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: diff --git a/appveyor.yml b/appveyor.yml index ea1a585b0d..2792ab0fc6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -17,31 +17,8 @@ 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.. - 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..e33a230bcd --- /dev/null +++ b/build.cmd @@ -0,0 +1,2 @@ +@echo Off +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..a79743393c --- /dev/null +++ b/build/Program.cs @@ -0,0 +1,445 @@ +// +// 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, + /// 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. + /// + /// + /// + /// 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 + { + private const string FallbackTag = "CI"; + + /// + /// Main entry point. + /// + /// The arguments. + 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) + { + ResetProject(projects); + } + else + { + CaclulateProjectVersionNumber(projects, repo); + + UpdateVersionNumbers(projects); + + CreateBuildScript(projects); + + foreach (var p in projects) + { + Console.WriteLine($"{p.Name} {p.FinalVersionNumber}"); + } + } + } + + private static void CreateBuildScript(IEnumerable projects) + { + var sb = new StringBuilder(); + foreach (var p in projects) + { + sb.AppendLine($@"dotnet pack --configuration Release --output ""artifacts\bin\ImageSharp"" ""{p.ProjectFilePath}"""); + } + + File.WriteAllText("build-inner.cmd", sb.ToString()); + } + + private static void UpdateVersionNumbers(IEnumerable projects) + { + 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); + + dynamic projectFile = JsonConvert.DeserializeObject(File.ReadAllText(p.FullProjectFilePath)); + + projectFile.version = $"{newVersion}-*"; + File.WriteAllText(p.FullProjectFilePath, JsonConvert.SerializeObject(projectFile, Formatting.Indented)); + } + } + + 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):000}"; + } + + // 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); + + // 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) + { + if (File.Exists("build-inner.cmd")) + { + File.Delete("build-inner.cmd"); + } + + // 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"); + } + } + } + + /// + /// 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; } + + /// + /// Populates the dependencies. + /// + /// The projects. + public void PopulateDependencies(IEnumerable projects) + { + this.DependentProjects = projects.Where(x => this.dependencies.Contains(x.Name)).ToList(); + } + + /// + /// Calculates the version. + /// + /// The repo. + /// The branch. + internal void CalculateVersion(Repository repo, string branch) + { + 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)) + { + return true; + } + + if (this.DependentProjects.Any()) + { + return this.DependentProjects.Any(x => x.MatchPath(path)); + } + + return false; + } + + private bool ApplyCommitInternal(Commit commit, TreeChanges changes, Repository repo) + { + this.CommitCountSinceVersionChange++; + + // 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; + } + + 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 (this.MatchPath(change.OldPath)) + { + return this.ApplyCommitInternal(commit, changes, repo); + } + } + + if (!string.IsNullOrWhiteSpace(change.Path)) + { + if (this.MatchPath(change.Path)) + { + return this.ApplyCommitInternal(commit, changes, repo); + } + } + } + } + + return true; + } + + private string CalculateVersionNumber(string branch) + { + var version = this.Version.ToFullString(); + + // master only + if (this.CommitCountSinceVersionChange == 1 && branch == "master") + { + if (this.Version.IsPrerelease) + { + // 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 = string.Empty; + + 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 master and the version doesn't manually specify a prerelease tag force one on for CI builds + if (branch == "master") + { + if (!this.Version.IsPrerelease) + { + branch = FallbackTag; + } + else + { + branch = string.Empty; + } + } + + if (rootSpecialVersion.Length > 0) + { + rootSpecialVersion = "-" + rootSpecialVersion; + } + + if (branch.Length > 0) + { + branch = "-" + branch; + } + + 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.CommitCountSinceVersionChange:00000}"; + } + } + } +} 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/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/build.cmd b/build/build.cmd new file mode 100644 index 0000000000..14fc0bdaa9 --- /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/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/project.json b/build/project.json new file mode 100644 index 0000000000..cf95cc8a0b --- /dev/null +++ b/build/project.json @@ -0,0 +1,22 @@ +{ + "version": "1.0.0-*", + "buildOptions": { + "debugType": "portable", + "emitEntryPoint": true, + "xmlDoc": true, + "additionalArguments": [ "/additionalfile:../src/Shared/stylecop.json", "/ruleset:../ImageSharp.ruleset" ] + }, + "dependencies": { + "Microsoft.DotNet.ProjectModel": "1.0.0-rc3-003121", + "LibGit2Sharp": "0.23.0", + "StyleCop.Analyzers": { + "version": "1.1.0-beta001", + "type": "build" + } + }, + "frameworks": { + "net46": { + // this is only a net46 app because of LibGit2Sharp once they have a version that works on coreclr we can shift over. + } + } +} diff --git a/build/reset-versions.cmd b/build/reset-versions.cmd new file mode 100644 index 0000000000..31d1d24318 --- /dev/null +++ b/build/reset-versions.cmd @@ -0,0 +1,8 @@ +@echo Off + +set buildRoot="%cd%" +cd %~dp0 + +dotnet run -- reset + +cd %buildRoot% \ No newline at end of file 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 98% rename from src/ImageSharp/Drawing/Draw.cs rename to 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 similarity index 94% rename from src/ImageSharp/Drawing/DrawImage.cs rename to 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 similarity index 97% rename from src/ImageSharp/Drawing/DrawRectangle.cs rename to 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 similarity index 96% rename from src/ImageSharp/Drawing/Fill.cs rename to 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 similarity index 93% rename from src/ImageSharp/Drawing/FillRectangle.cs rename to 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/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 99% rename from src/ImageSharp/Drawing/Pens/Pen{TColor}.cs rename to src/ImageSharp.Drawing/Pens/Pen{TColor}.cs index e9009f3cb9..0af039ac77 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 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/Processors/ColoredPointInfo.cs b/src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs similarity index 94% rename from src/ImageSharp/Drawing/Pens/Processors/ColoredPointInfo.cs rename to src/ImageSharp.Drawing/Pens/Processors/ColoredPointInfo.cs index cb5272425f..494f0f4e4e 100644 --- a/src/ImageSharp/Drawing/Pens/Processors/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.Pens.Processors +namespace ImageSharp.Drawing.Processors { using System; diff --git a/src/ImageSharp/Drawing/Pens/Processors/IPenApplicator.cs b/src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs similarity index 96% rename from src/ImageSharp/Drawing/Pens/Processors/IPenApplicator.cs rename to src/ImageSharp.Drawing/Pens/Processors/IPenApplicator.cs index c8f381a724..7159dfeec3 100644 --- a/src/ImageSharp/Drawing/Pens/Processors/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.Pens.Processors +namespace ImageSharp.Drawing.Processors { using System; using Paths; diff --git a/src/ImageSharp/Drawing/Processors/DrawImageProcessor.cs b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs similarity index 96% rename from src/ImageSharp/Drawing/Processors/DrawImageProcessor.cs rename to src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs index 535635a45a..81b40e6559 100644 --- a/src/ImageSharp/Drawing/Processors/DrawImageProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/DrawImageProcessor.cs @@ -3,12 +3,14 @@ // 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 ImageSharp.Processing; + /// /// Combines two images together by blending the pixels. /// @@ -57,6 +59,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 similarity index 98% rename from src/ImageSharp/Drawing/Processors/DrawPathProcessor.cs rename to src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs index a472b6fe6b..7fcdb95a6f 100644 --- a/src/ImageSharp/Drawing/Processors/DrawPathProcessor.cs +++ b/src/ImageSharp.Drawing/Processors/DrawPathProcessor.cs @@ -9,10 +9,9 @@ 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; using Shapes; using Rectangle = ImageSharp.Rectangle; @@ -20,7 +19,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 similarity index 99% rename from src/ImageSharp/Drawing/Processors/FillProcessor.cs rename to 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 similarity index 98% rename from src/ImageSharp/Drawing/Processors/FillShapeProcessor.cs rename to 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/Properties/AssemblyInfo.cs b/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..fba25a9dba --- /dev/null +++ b/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +// Common values read from `AssemblyInfo.Common.cs` 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..ece92f438e --- /dev/null +++ b/src/ImageSharp.Drawing/project.json @@ -0,0 +1,83 @@ +{ + "version": "1.0.0-alpha1-*", + "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:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": { + "target": "project", + "version": "1.0.0-*" + }, + "ImageSharp.Processing": { + "target": "project", + "version": "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" + } + } + } +} \ 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/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..d6e98c6d6c --- /dev/null +++ b/src/ImageSharp.Formats.Bmp/Properties/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// +// 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/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..4ed92c7e5b --- /dev/null +++ b/src/ImageSharp.Formats.Bmp/project.json @@ -0,0 +1,81 @@ +{ + "version": "1.0.0-alpha1-*", + "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:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": { + "target": "project", + "version": "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", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" + } + } + } +} \ No newline at end of file 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/ImageExtensions.cs b/src/ImageSharp.Formats.Gif/ImageExtensions.cs new file mode 100644 index 0000000000..09c836a680 --- /dev/null +++ b/src/ImageSharp.Formats.Gif/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 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.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..d6e98c6d6c --- /dev/null +++ b/src/ImageSharp.Formats.Gif/Properties/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// +// 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/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..c0710a3e40 --- /dev/null +++ b/src/ImageSharp.Formats.Gif/project.json @@ -0,0 +1,81 @@ +{ + "version": "1.0.0-alpha1-*", + "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:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": { + "target": "project", + "version": "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", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" + } + } + } +} \ No newline at end of file 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/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..d6e98c6d6c --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/Properties/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// +// 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/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..6366f507e8 --- /dev/null +++ b/src/ImageSharp.Formats.Jpeg/project.json @@ -0,0 +1,81 @@ +{ + "version": "1.0.0-alpha1-*", + "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:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": { + "target": "project", + "version": "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", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" + } + } + } +} \ No newline at end of file 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/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..d6e98c6d6c --- /dev/null +++ b/src/ImageSharp.Formats.Png/Properties/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// +// 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/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..bce68ddca5 --- /dev/null +++ b/src/ImageSharp.Formats.Png/project.json @@ -0,0 +1,81 @@ +{ + "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:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] + }, + "configurations": { + "Release": { + "buildOptions": { + "warningsAsErrors": true, + "optimize": true + } + } + }, + "dependencies": { + "ImageSharp": { + "target": "project", + "version": "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", + "System.IO": "4.0.0", + "System.Threading.Tasks.Parallel": "4.0.0" + } + } + } +} \ No newline at end of file diff --git a/src/ImageSharp/Filters/Binarization/BinaryThreshold.cs b/src/ImageSharp.Processing/Binarization/BinaryThreshold.cs similarity index 93% rename from src/ImageSharp/Filters/Binarization/BinaryThreshold.cs rename to src/ImageSharp.Processing/Binarization/BinaryThreshold.cs index ebf28357a2..1b5b6c9bbc 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.Processors; /// /// 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/ColorMatrix/BlackWhite.cs b/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs similarity index 92% rename from src/ImageSharp/Filters/ColorMatrix/BlackWhite.cs rename to src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs index a0be4d9126..e172a21be0 100644 --- a/src/ImageSharp/Filters/ColorMatrix/BlackWhite.cs +++ b/src/ImageSharp.Processing/ColorMatrix/BlackWhite.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -38,7 +39,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/ColorMatrix/ColorBlindness.cs b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs similarity index 82% rename from src/ImageSharp/Filters/ColorMatrix/ColorBlindness.cs rename to src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs index d0c61bd739..2e90b059e7 100644 --- a/src/ImageSharp/Filters/ColorMatrix/ColorBlindness.cs +++ b/src/ImageSharp.Processing/ColorMatrix/ColorBlindness.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + 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; @@ -77,7 +78,7 @@ namespace ImageSharp break; } - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } diff --git a/src/ImageSharp/Filters/ColorMatrix/Grayscale.cs b/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Grayscale.cs rename to src/ImageSharp.Processing/ColorMatrix/Grayscale.cs index d98ce27b9a..f1a17c02b0 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Grayscale.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Grayscale.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -44,7 +45,7 @@ namespace ImageSharp ? (IImageProcessor)new GrayscaleBt709Processor() : new GrayscaleBt601Processor(); - return source.Process(rectangle, processor); + return source.Apply(rectangle, processor); } } } diff --git a/src/ImageSharp/Filters/ColorMatrix/Hue.cs b/src/ImageSharp.Processing/ColorMatrix/Hue.cs similarity index 92% rename from src/ImageSharp/Filters/ColorMatrix/Hue.cs rename to src/ImageSharp.Processing/ColorMatrix/Hue.cs index 52e7d19b8f..f03f65692a 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Hue.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Hue.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -40,7 +41,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/ColorMatrix/Kodachrome.cs b/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs similarity index 92% rename from src/ImageSharp/Filters/ColorMatrix/Kodachrome.cs rename to src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs index 6f249f3cda..2592d80909 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Kodachrome.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Kodachrome.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -38,7 +39,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/ColorMatrix/Lomograph.cs b/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs similarity index 92% rename from src/ImageSharp/Filters/ColorMatrix/Lomograph.cs rename to src/ImageSharp.Processing/ColorMatrix/Lomograph.cs index 06ba764103..2605bc3011 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Lomograph.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Lomograph.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -38,7 +39,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/ColorMatrix/Options/ColorBlindness.cs b/src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs similarity index 97% rename from src/ImageSharp/Filters/ColorMatrix/Options/ColorBlindness.cs rename to src/ImageSharp.Processing/ColorMatrix/Options/ColorBlindness.cs index 1e0bc596b2..def253234f 100644 --- a/src/ImageSharp/Filters/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/Filters/ColorMatrix/Options/GrayscaleMode.cs b/src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs similarity index 94% rename from src/ImageSharp/Filters/ColorMatrix/Options/GrayscaleMode.cs rename to src/ImageSharp.Processing/ColorMatrix/Options/GrayscaleMode.cs index 6ecd5bb365..f1294ffaff 100644 --- a/src/ImageSharp/Filters/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/Filters/ColorMatrix/Polaroid.cs b/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs similarity index 92% rename from src/ImageSharp/Filters/ColorMatrix/Polaroid.cs rename to src/ImageSharp.Processing/ColorMatrix/Polaroid.cs index 5df58cea97..5c51a710bf 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Polaroid.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Polaroid.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -38,7 +39,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/ColorMatrix/Saturation.cs b/src/ImageSharp.Processing/ColorMatrix/Saturation.cs similarity index 92% rename from src/ImageSharp/Filters/ColorMatrix/Saturation.cs rename to src/ImageSharp.Processing/ColorMatrix/Saturation.cs index 101a45eab7..773329ea6c 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Saturation.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Saturation.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -40,7 +41,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/ColorMatrix/Sepia.cs b/src/ImageSharp.Processing/ColorMatrix/Sepia.cs similarity index 92% rename from src/ImageSharp/Filters/ColorMatrix/Sepia.cs rename to src/ImageSharp.Processing/ColorMatrix/Sepia.cs index a3641bfe30..3f29b93e59 100644 --- a/src/ImageSharp/Filters/ColorMatrix/Sepia.cs +++ b/src/ImageSharp.Processing/ColorMatrix/Sepia.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -38,7 +39,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/Convolution/BoxBlur.cs b/src/ImageSharp.Processing/Convolution/BoxBlur.cs similarity index 92% rename from src/ImageSharp/Filters/Convolution/BoxBlur.cs rename to src/ImageSharp.Processing/Convolution/BoxBlur.cs index e07da5b302..e16c30516d 100644 --- a/src/ImageSharp/Filters/Convolution/BoxBlur.cs +++ b/src/ImageSharp.Processing/Convolution/BoxBlur.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -40,7 +41,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/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..32fc167f1d 100644 --- a/src/ImageSharp/Filters/Convolution/DetectEdges.cs +++ b/src/ImageSharp.Processing/Convolution/DetectEdges.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -145,7 +146,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/Convolution/GaussianBlur.cs b/src/ImageSharp.Processing/Convolution/GaussianBlur.cs similarity index 92% rename from src/ImageSharp/Filters/Convolution/GaussianBlur.cs rename to src/ImageSharp.Processing/Convolution/GaussianBlur.cs index 0f03864b53..7e8b9a4032 100644 --- a/src/ImageSharp/Filters/Convolution/GaussianBlur.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianBlur.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -40,7 +41,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/Convolution/GaussianSharpen.cs b/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs similarity index 92% rename from src/ImageSharp/Filters/Convolution/GaussianSharpen.cs rename to src/ImageSharp.Processing/Convolution/GaussianSharpen.cs index 39beddf46d..ef49104599 100644 --- a/src/ImageSharp/Filters/Convolution/GaussianSharpen.cs +++ b/src/ImageSharp.Processing/Convolution/GaussianSharpen.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -40,7 +41,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/Convolution/Options/EdgeDetection.cs b/src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs similarity index 97% rename from src/ImageSharp/Filters/Convolution/Options/EdgeDetection.cs rename to src/ImageSharp.Processing/Convolution/Options/EdgeDetection.cs index 67fad0de41..809992f005 100644 --- a/src/ImageSharp/Filters/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/Filters/Effects/Alpha.cs b/src/ImageSharp.Processing/Effects/Alpha.cs similarity index 93% rename from src/ImageSharp/Filters/Effects/Alpha.cs rename to src/ImageSharp.Processing/Effects/Alpha.cs index 8c765472de..856276a89e 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.Processors; /// /// 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/Effects/BackgroundColor.cs b/src/ImageSharp.Processing/Effects/BackgroundColor.cs similarity index 88% rename from src/ImageSharp/Filters/Effects/BackgroundColor.cs rename to src/ImageSharp.Processing/Effects/BackgroundColor.cs index d7971ba9ce..ac1add3513 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.Processors; /// /// 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/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..8c9ff8946f 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.Processors; /// /// 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/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..8310286825 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.Processors; /// /// 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/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..31e524000e 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.Processors; /// /// 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/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..463cfd675c 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.Processors; /// /// 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/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..92d1fdd698 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.Processors; /// /// 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.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 97% rename from src/ImageSharp/Filters/Overlays/Glow.cs rename to src/ImageSharp.Processing/Overlays/Glow.cs index 4f5a05852a..6511407dad 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.Processors; /// /// 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/Overlays/Vignette.cs b/src/ImageSharp.Processing/Overlays/Vignette.cs similarity index 97% rename from src/ImageSharp/Filters/Overlays/Vignette.cs rename to src/ImageSharp.Processing/Overlays/Vignette.cs index 7f5ade12d3..f728a3e1c6 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.Processors; /// /// 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/Binarization/BinaryThresholdProcessor.cs b/src/ImageSharp.Processing/Processors/Binarization/BinaryThresholdProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Binarization/BinaryThresholdProcessor.cs rename to src/ImageSharp.Processing/Processors/Binarization/BinaryThresholdProcessor.cs index 8a042c3596..2eb5225f82 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/BlackWhiteProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/BlackWhiteProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/ColorMatrix/BlackWhiteProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/BlackWhiteProcessor.cs index 942be785cf..305375eca1 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatomalyProcessor.cs index 2b8ca88573..3e34d08382 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/AchromatopsiaProcessor.cs index d9530ad268..53a7a3556b 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranomalyProcessor.cs index 84e185b40f..5d252961c5 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/DeuteranopiaProcessor.cs index 026fd2832c..cd48df4016 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanomalyProcessor.cs index 92f4fc1f86..234c2e13b5 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/ProtanopiaProcessor.cs index 3c92813428..a88b8812e6 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/README.md b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/README.md similarity index 100% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/README.md rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/README.md diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanomalyProcessor.cs index cde693c42f..1f68bddbbb 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorBlindness/TritanopiaProcessor.cs index eb47c61c21..85332e8106 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/ColorMatrixFilter.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/ColorMatrixFilter.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/ColorMatrixFilter.cs index 67f9525f74..b11b82b102 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt601Processor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt601Processor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt601Processor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt601Processor.cs index b3e30f04e1..364919e74e 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt709Processor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt709Processor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/GrayscaleBt709Processor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/GrayscaleBt709Processor.cs index 24801b901f..37d41ab74d 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/HueProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/HueProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/HueProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/HueProcessor.cs index a1de8eb0c9..0de0891fea 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/IColorMatrixFilter.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/IColorMatrixFilter.cs similarity index 94% rename from src/ImageSharp/Filters/Processors/ColorMatrix/IColorMatrixFilter.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/IColorMatrixFilter.cs index 295a0d9720..4230fda12a 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/KodachromeProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/KodachromeProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/ColorMatrix/KodachromeProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/KodachromeProcessor.cs index 60b6a1d20b..84a05e579c 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/LomographProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/LomographProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/LomographProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/LomographProcessor.cs index d58e588be2..731e04bf74 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/PolaroidProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/PolaroidProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/ColorMatrix/PolaroidProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/PolaroidProcessor.cs index 73bc18e49f..678edf011a 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/SaturationProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/SaturationProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/ColorMatrix/SaturationProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/SaturationProcessor.cs index 71bb49c922..430228d53e 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/ColorMatrix/SepiaProcessor.cs b/src/ImageSharp.Processing/Processors/ColorMatrix/SepiaProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/ColorMatrix/SepiaProcessor.cs rename to src/ImageSharp.Processing/Processors/ColorMatrix/SepiaProcessor.cs index 8353cfa0be..1170fc3a90 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/BoxBlurProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/BoxBlurProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Convolution/BoxBlurProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/BoxBlurProcessor.cs index 98ab075f1d..272b3cc8b4 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/Convolution2DProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/Convolution2DProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/Convolution2DProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/Convolution2DProcessor.cs index 9db67f0624..d6ea42f0c4 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/Convolution2PassProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/Convolution2PassProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/Convolution2PassProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/Convolution2PassProcessor.cs index 80e3c6f92e..ad7ed83ed6 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/ConvolutionProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/ConvolutionProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Convolution/ConvolutionProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/ConvolutionProcessor.cs index b771cc5625..17d7e2918f 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetector2DProcessor.cs index 40cdd2052e..6ee5d0f96a 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorCompassProcessor.cs index a317c183d1..5a1487761f 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/EdgeDetectorProcessor.cs index 332b10e41c..1033111fcb 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs similarity index 95% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/IEdgeDetectorProcessor.cs index f4b2442d0f..68dc7ccdbb 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KayyaliProcessor.cs index 84d14e7cf4..f628ea1b94 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KirschProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KirschProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/KirschProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/KirschProcessor.cs index 6bc440e236..3f7e0a00ee 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian3X3Processor.cs index 89e29e2117..b19c5c7737 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/Laplacian5X5Processor.cs index 7b8e965448..efa6c28c56 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs similarity index 96% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/LaplacianOfGaussianProcessor.cs index 112d1c5175..595ca6a4b0 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/PrewittProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/PrewittProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/PrewittProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/PrewittProcessor.cs index a3d719ba7e..5c48722ef8 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobertsCrossProcessor.cs index f7586e11f3..c64ee8abeb 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/RobinsonProcessor.cs index cb05599bf0..4e61707c45 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/ScharrProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/ScharrProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/ScharrProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/ScharrProcessor.cs index 3c9c818d3a..de2a185f86 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/SobelProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/SobelProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Convolution/EdgeDetection/SobelProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/EdgeDetection/SobelProcessor.cs index ebca2018b5..328c903dc7 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Diagnostics.CodeAnalysis; diff --git a/src/ImageSharp/Filters/Processors/Convolution/GaussianBlurProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/GaussianBlurProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/GaussianBlurProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/GaussianBlurProcessor.cs index 81fa3dce42..7cd3bbe9c5 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp/Filters/Processors/Convolution/GaussianSharpenProcessor.cs b/src/ImageSharp.Processing/Processors/Convolution/GaussianSharpenProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Convolution/GaussianSharpenProcessor.cs rename to src/ImageSharp.Processing/Processors/Convolution/GaussianSharpenProcessor.cs index 5030085a00..d0654dd77b 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp/Filters/Processors/Effects/AlphaProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/AlphaProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/AlphaProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/AlphaProcessor.cs index 59c9352808..ecf47a036c 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Effects/BackgroundColorProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/BackgroundColorProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/BackgroundColorProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/BackgroundColorProcessor.cs index 3e8ea5417a..356b2e925a 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Effects/BrightnessProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/BrightnessProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/BrightnessProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/BrightnessProcessor.cs index 70c6bd6b03..eb88b9c41c 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Effects/ContrastProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/ContrastProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/ContrastProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/ContrastProcessor.cs index 00c5d441a2..0cc56cc8e4 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Effects/InvertProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/InvertProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Effects/InvertProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/InvertProcessor.cs index 7ceb11194a..ec1ea7786e 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Effects/OilPaintingProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/OilPaintingProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/OilPaintingProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/OilPaintingProcessor.cs index 7cbcafaba8..9e12a2a91b 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Effects/PixelateProcessor.cs b/src/ImageSharp.Processing/Processors/Effects/PixelateProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Effects/PixelateProcessor.cs rename to src/ImageSharp.Processing/Processors/Effects/PixelateProcessor.cs index 110cface2e..9c9cf92fec 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Collections.Generic; diff --git a/src/ImageSharp/Filters/Processors/Overlays/GlowProcessor.cs b/src/ImageSharp.Processing/Processors/Overlays/GlowProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Overlays/GlowProcessor.cs rename to src/ImageSharp.Processing/Processors/Overlays/GlowProcessor.cs index 6e7d27929e..f0e32f1fa3 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Overlays/VignetteProcessor.cs b/src/ImageSharp.Processing/Processors/Overlays/VignetteProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Overlays/VignetteProcessor.cs rename to src/ImageSharp.Processing/Processors/Overlays/VignetteProcessor.cs index ddb7b569fd..8449f18332 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Transforms/CompandingResizeProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/CompandingResizeProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/CompandingResizeProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/CompandingResizeProcessor.cs index 80f02c18f6..a392de0513 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Transforms/CropProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/CropProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/CropProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/CropProcessor.cs index 7efd9b9241..27b5bef0c5 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Filters/Processors/Transforms/EntropyCropProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/EntropyCropProcessor.cs similarity index 97% rename from src/ImageSharp/Filters/Processors/Transforms/EntropyCropProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/EntropyCropProcessor.cs index 78bef63b01..e0c6e9b92a 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp/Filters/Processors/Transforms/FlipProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/FlipProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/FlipProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/FlipProcessor.cs index 4973c10d6d..ba21dced7a 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Threading.Tasks; diff --git a/src/ImageSharp/Filters/Processors/Transforms/Matrix3x2Processor.cs b/src/ImageSharp.Processing/Processors/Transforms/Matrix3x2Processor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/Matrix3x2Processor.cs rename to src/ImageSharp.Processing/Processors/Transforms/Matrix3x2Processor.cs index b6f3d5a66e..209ad3914b 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Transforms/ResamplingWeightedProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/ResamplingWeightedProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/ResamplingWeightedProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/ResamplingWeightedProcessor.cs index f29560835c..cac8871539 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; diff --git a/src/ImageSharp/Filters/Processors/Transforms/ResizeProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/ResizeProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/ResizeProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/ResizeProcessor.cs index 48f6b50368..687e452e6e 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Transforms/RotateProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/RotateProcessor.cs similarity index 99% rename from src/ImageSharp/Filters/Processors/Transforms/RotateProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/RotateProcessor.cs index e81cd7e57e..9b9534b390 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { using System; using System.Numerics; diff --git a/src/ImageSharp/Filters/Processors/Transforms/SkewProcessor.cs b/src/ImageSharp.Processing/Processors/Transforms/SkewProcessor.cs similarity index 98% rename from src/ImageSharp/Filters/Processors/Transforms/SkewProcessor.cs rename to src/ImageSharp.Processing/Processors/Transforms/SkewProcessor.cs index e13d4995b8..c94f69358b 100644 --- a/src/ImageSharp/Filters/Processors/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.Processors +namespace ImageSharp.Processing.Processors { 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..d6e98c6d6c --- /dev/null +++ b/src/ImageSharp.Processing/Properties/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// +// 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/Filters/Transforms/AutoOrient.cs b/src/ImageSharp.Processing/Transforms/AutoOrient.cs similarity index 98% rename from src/ImageSharp/Filters/Transforms/AutoOrient.cs rename to src/ImageSharp.Processing/Transforms/AutoOrient.cs index cdd62624ad..8d86ae8142 100644 --- a/src/ImageSharp/Filters/Transforms/AutoOrient.cs +++ b/src/ImageSharp.Processing/Transforms/AutoOrient.cs @@ -6,6 +6,8 @@ namespace ImageSharp { using System; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. 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..09309a8053 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.Processors; /// /// 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/Transforms/EntropyCrop.cs b/src/ImageSharp.Processing/Transforms/EntropyCrop.cs similarity index 91% rename from src/ImageSharp/Filters/Transforms/EntropyCrop.cs rename to src/ImageSharp.Processing/Transforms/EntropyCrop.cs index a2abcf38dd..8ba6baf19b 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.Processors; /// /// 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/Transforms/Flip.cs b/src/ImageSharp.Processing/Transforms/Flip.cs similarity index 90% rename from src/ImageSharp/Filters/Transforms/Flip.cs rename to src/ImageSharp.Processing/Transforms/Flip.cs index 6feb726b4d..4b4c1b7d62 100644 --- a/src/ImageSharp/Filters/Transforms/Flip.cs +++ b/src/ImageSharp.Processing/Transforms/Flip.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -25,7 +26,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/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 95% rename from src/ImageSharp/Filters/Transforms/Pad.cs rename to src/ImageSharp.Processing/Transforms/Pad.cs index 265edd23dd..df45a94f33 100644 --- a/src/ImageSharp/Filters/Transforms/Pad.cs +++ b/src/ImageSharp.Processing/Transforms/Pad.cs @@ -7,6 +7,9 @@ namespace ImageSharp { using System; + using Processing; + using Processing.Processors; + /// /// 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/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..02a03d79be 100644 --- a/src/ImageSharp/Filters/Transforms/Resize.cs +++ b/src/ImageSharp.Processing/Transforms/Resize.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -152,7 +153,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/Transforms/Rotate.cs b/src/ImageSharp.Processing/Transforms/Rotate.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Rotate.cs rename to src/ImageSharp.Processing/Transforms/Rotate.cs index 3d88523c67..b35bbc58ad 100644 --- a/src/ImageSharp/Filters/Transforms/Rotate.cs +++ b/src/ImageSharp.Processing/Transforms/Rotate.cs @@ -7,7 +7,8 @@ namespace ImageSharp { using System; - using Processors; + using Processing; + using Processing.Processors; /// /// Extension methods for the type. @@ -52,7 +53,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/Transforms/Skew.cs b/src/ImageSharp.Processing/Transforms/Skew.cs similarity index 95% rename from src/ImageSharp/Filters/Transforms/Skew.cs rename to src/ImageSharp.Processing/Transforms/Skew.cs index dab0ace2fd..825dce5556 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.Processors; /// /// 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.Processing/project.json b/src/ImageSharp.Processing/project.json new file mode 100644 index 0000000000..eb3ea59db6 --- /dev/null +++ b/src/ImageSharp.Processing/project.json @@ -0,0 +1,81 @@ +{ + "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:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] + }, + "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/Configuration.cs b/src/ImageSharp/Configuration.cs index 013c134952..daf68d81b4 100644 --- a/src/ImageSharp/Configuration.cs +++ b/src/ImageSharp/Configuration.cs @@ -21,12 +21,12 @@ namespace ImageSharp /// /// A lazily initialized configuration default instance. /// - private static readonly Lazy Lazy = new Lazy(() => new Configuration()); + private static readonly Lazy Lazy = new Lazy(() => CreateDefaultInstance()); /// /// 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 . @@ -69,13 +69,55 @@ 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. + /// + /// 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. /// /// The image format. private void AddImageFormatLocked(IImageFormat format) { - lock (SyncRoot) + lock (this.syncRoot) { if (this.GuardDuplicate(format)) { 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..027c2b1f06 100644 --- a/src/ImageSharp/IO/EndianBinaryWriter.cs +++ b/src/ImageSharp/IO/EndianBinaryWriter.cs @@ -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/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/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/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/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/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/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/src/ImageSharp/Properties/AssemblyInfo.cs b/src/ImageSharp/Properties/AssemblyInfo.cs index 8f3982ee42..407a17b85a 100644 --- a/src/ImageSharp/Properties/AssemblyInfo.cs +++ b/src/ImageSharp/Properties/AssemblyInfo.cs @@ -2,39 +2,12 @@ // 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")] +// 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 diff --git a/src/ImageSharp/project.json b/src/ImageSharp/project.json index 91cd277147..8ddaa8bcc2 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": [ @@ -24,7 +24,10 @@ "buildOptions": { "allowUnsafe": true, "xmlDoc": true, - "additionalArguments": [ "/additionalfile:stylecop.json", "/ruleset:../../ImageSharp.ruleset" ] + "additionalArguments": [ "/additionalfile:../Shared/stylecop.json", "/ruleset:../../ImageSharp.ruleset" ], + "compile": [ + "../Shared/*.cs" + ] }, "configurations": { "Release": { @@ -65,7 +68,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/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 diff --git a/src/ImageSharp/stylecop.json b/src/Shared/stylecop.json similarity index 100% rename from src/ImageSharp/stylecop.json rename to src/Shared/stylecop.json diff --git a/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs b/tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs index b02b46f661..be76c13fd6 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 : BenchmarkBase { diff --git a/tests/ImageSharp.Benchmarks/project.json b/tests/ImageSharp.Benchmarks/project.json index 171cf1310b..10790bc156 100644 --- a/tests/ImageSharp.Benchmarks/project.json +++ b/tests/ImageSharp.Benchmarks/project.json @@ -15,7 +15,34 @@ }, "dependencies": { "BenchmarkDotNet.Diagnostics.Windows": "0.10.1", - "ImageSharp": "1.0.0-*" + "ImageSharp": { + "target": "project", + "version": "1.0.0-*" + }, + "ImageSharp.Drawing": { + "target": "project", + "version": "1.0.0-*" + }, + "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-*" + }, + "ImageSharp.Processing": { + "target": "project", + "version": "1.0.0-*" + } }, "commands": { "ImageSharp.Benchmarks": "ImageSharp.Benchmarks" diff --git a/tests/ImageSharp.Tests/ConfigurationTests.cs b/tests/ImageSharp.Tests/ConfigurationTests.cs index 74a0773419..883d235673 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 = Configuration.CreateDefaultInstance(); + + Assert.Equal(4, configuration.ImageFormats.Count); + } + /// /// Test that the default configuration is not null. /// 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/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/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/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..ee4d0b0278 100644 --- a/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs +++ b/tests/ImageSharp.Tests/Processors/Filters/GrayscaleTest.cs @@ -5,10 +5,10 @@ namespace ImageSharp.Tests { - using Processors; using System.IO; using Xunit; + using ImageSharp.Processing; public class GrayscaleTest : FileTestBase { 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/TestBase.cs b/tests/ImageSharp.Tests/TestBase.cs index 175bf215c4..2b92591eb7 100644 --- a/tests/ImageSharp.Tests/TestBase.cs +++ b/tests/ImageSharp.Tests/TestBase.cs @@ -6,6 +6,7 @@ namespace ImageSharp.Tests { using System.IO; + using ImageSharp.Formats; /// /// The test base class. Inherit from this class for any image manipulation tests. diff --git a/tests/ImageSharp.Tests/TestFile.cs b/tests/ImageSharp.Tests/TestFile.cs index 566796bf81..61a6a9f64f 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. @@ -34,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. /// @@ -144,14 +132,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)}]"); } } } diff --git a/tests/ImageSharp.Tests/project.json b/tests/ImageSharp.Tests/project.json index e0e269239e..9f9c0c7150 100644 --- a/tests/ImageSharp.Tests/project.json +++ b/tests/ImageSharp.Tests/project.json @@ -20,9 +20,36 @@ } }, "dependencies": { - "ImageSharp": "1.0.0-*", + "ImageSharp": { + "target": "project", + "version": "1.0.0-*" + }, "xunit": "2.2.0-*", - "dotnet-test-xunit": "2.2.0-*" + "dotnet-test-xunit": "2.2.0-*", + "ImageSharp.Drawing": { + "target": "project", + "version": "1.0.0-*" + }, + "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-*" + }, + "ImageSharp.Processing": { + "target": "project", + "version": "1.0.0-*" + } }, "frameworks": { "netcoreapp1.1": { @@ -34,7 +61,10 @@ "Microsoft.CodeCoverage": "1.0.2" } }, - "net451": {} + "net451": { + "dependencies": { + } + } }, "testRunner": "xunit" } \ No newline at end of file