diff --git a/.editorconfig b/.editorconfig
index b725c5cce3..8f0e28eec6 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,20 +1,371 @@
-# top-most EditorConfig file
+###############################################################################
+# EditorConfig is awesome: http://EditorConfig.org
+###############################################################################
+
+###############################################################################
+# Top-most EditorConfig file
+###############################################################################
root = true
-[*.cs]
+###############################################################################
+# Set default behavior to:
+# a UTF-8 encoding,
+# Unix-style line endings,
+# a newline ending the file,
+# 4 space indentation, and
+# trimming of trailing whitespace
+###############################################################################
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
indent_style = space
indent_size = 4
-csharp_style_var_for_built_in_types = false:warning
-csharp_style_var_elsewhere = false:warning
-csharp_style_var_when_type_is_apparent = true:warning
+trim_trailing_whitespace = true
+
+###############################################################################
+# Set file behavior to:
+# 2 space indentation
+###############################################################################
+[*.{cmd,config,csproj,json,props,ps1,resx,sh,targets}]
+indent_size = 2
+
+###############################################################################
+# Set file behavior to:
+# Windows-style line endings, and
+# tabular indentation
+###############################################################################
+[*.sln]
end_of_line = crlf
+indent_style = tab
+
+###############################################################################
+# Set dotnet naming rules to:
+# suggest async members be pascal case suffixed with Async
+# suggest const declarations be pascal case
+# suggest interfaces be pascal case prefixed with I
+# suggest parameters be camel case
+# suggest private and internal static fields be camel case
+# suggest private and internal fields be camel case
+# suggest public and protected declarations be pascal case
+# suggest static readonly declarations be pascal case
+# suggest type parameters be prefixed with T
+###############################################################################
+[*.cs]
+dotnet_naming_rule.async_members_should_be_pascal_case_suffixed_with_async.severity = suggestion
+dotnet_naming_rule.async_members_should_be_pascal_case_suffixed_with_async.style = pascal_case_suffixed_with_async
+dotnet_naming_rule.async_members_should_be_pascal_case_suffixed_with_async.symbols = async_members
+
+dotnet_naming_rule.const_declarations_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.const_declarations_should_be_pascal_case.style = pascal_case
+dotnet_naming_rule.const_declarations_should_be_pascal_case.symbols = const_declarations
+
+dotnet_naming_rule.interfaces_should_be_pascal_case_prefixed_with_i.severity = suggestion
+dotnet_naming_rule.interfaces_should_be_pascal_case_prefixed_with_i.style = pascal_case_prefixed_with_i
+dotnet_naming_rule.interfaces_should_be_pascal_case_prefixed_with_i.symbols = interfaces
+
+dotnet_naming_rule.parameters_should_be_camel_case.severity = suggestion
+dotnet_naming_rule.parameters_should_be_camel_case.style = camel_case
+dotnet_naming_rule.parameters_should_be_camel_case.symbols = parameters
+
+dotnet_naming_rule.private_and_internal_static_fields_should_be_camel_case.severity = suggestion
+dotnet_naming_rule.private_and_internal_static_fields_should_be_camel_case.style = camel_case
+dotnet_naming_rule.private_and_internal_static_fields_should_be_camel_case.symbols = private_and_internal_static_fields
+
+dotnet_naming_rule.private_and_internal_fields_should_be_camel_case.severity = suggestion
+dotnet_naming_rule.private_and_internal_fields_should_be_camel_case.style = camel_case
+dotnet_naming_rule.private_and_internal_fields_should_be_camel_case.symbols = private_and_internal_fields
+
+dotnet_naming_rule.public_and_protected_declarations_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.public_and_protected_declarations_should_be_pascal_case.style = pascal_case
+dotnet_naming_rule.public_and_protected_declarations_should_be_pascal_case.symbols = public_and_protected_declarations
+
+dotnet_naming_rule.static_readonly_declarations_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.static_readonly_declarations_should_be_pascal_case.style = pascal_case
+dotnet_naming_rule.static_readonly_declarations_should_be_pascal_case.symbols = static_readonly_declarations
+
+dotnet_naming_rule.type_parameters_should_be_pascal_case_prefixed_with_t.severity = suggestion
+dotnet_naming_rule.type_parameters_should_be_pascal_case_prefixed_with_t.style = pascal_case_prefixed_with_t
+dotnet_naming_rule.type_parameters_should_be_pascal_case_prefixed_with_t.symbols = type_parameters
+
+###############################################################################
+# Set dotnet naming styles to define:
+# camel case
+# pascal case
+# pascal case suffixed with Async
+# pascal case prefixed with I
+# pascal case prefixed with T
+###############################################################################
+[*.cs]
+dotnet_naming_style.camel_case.capitalization = camel_case
+
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+
+dotnet_naming_style.pascal_case_suffixed_with_async.capitalization = pascal_case
+dotnet_naming_style.pascal_case_suffixed_with_async.required_suffix = Async
+
+dotnet_naming_style.pascal_case_prefixed_with_i.capitalization = pascal_case
+dotnet_naming_style.pascal_case_prefixed_with_i.required_prefix = I
+
+dotnet_naming_style.pascal_case_prefixed_with_t.capitalization = pascal_case
+dotnet_naming_style.pascal_case_prefixed_with_t.required_prefix = T
+
+###############################################################################
+# Set dotnet naming symbols to:
+# async members
+# const declarations
+# interfaces
+# private and internal fields
+# private and internal static fields
+# public and protected declarations
+# static readonly declarations
+# type parameters
+###############################################################################
+[*.cs]
+dotnet_naming_symbols.async_members.required_modifiers = async
+
+dotnet_naming_symbols.const_declarations.required_modifiers = const
+
+dotnet_naming_symbols.interfaces.applicable_kinds = interface
+
+dotnet_naming_symbols.parameters.applicable_kinds = parameter
+
+dotnet_naming_symbols.private_and_internal_fields.applicable_accessibilities = private, internal
+dotnet_naming_symbols.private_and_internal_fields.applicable_kinds = field
+
+dotnet_naming_symbols.private_and_internal_static_fields.applicable_accessibilities = private, internal
+dotnet_naming_symbols.private_and_internal_static_fields.applicable_kinds = field
+dotnet_naming_symbols.private_and_internal_static_fields.required_modifiers = static
+
+dotnet_naming_symbols.public_and_protected_declarations.applicable_accessibilities = public, protected
+
+dotnet_naming_symbols.static_readonly_declarations.required_modifiers = static, readonly
+
+dotnet_naming_symbols.type_parameters.applicable_kinds = type_parameter
+
+###############################################################################
+# Set dotnet sort options to:
+# do not separate import directives into groups, and
+# sort system directives first
+###############################################################################
+[*.cs]
+dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = true
+
+###############################################################################
+# Set dotnet style options to:
+# suggest null-coalescing expressions,
+# suggest collection-initializers,
+# suggest explicit tuple names,
+# suggest null-propogation
+# suggest object-initializers,
+# generate parentheses in arithmetic binary operators for clarity,
+# generate parentheses in other binary operators for clarity,
+# don't generate parentheses in other operators if unnecessary,
+# generate parentheses in relational binary operators for clarity,
+# warn when not using predefined-types for locals, parameters, and members,
+# generate predefined-types of type names for member access,
+# generate auto properties,
+# suggest compound assignment,
+# generate conditional expression over assignment,
+# generate conditional expression over return,
+# suggest inferred anonymous types,
+# suggest inferred tuple names,
+# suggest 'is null' checks over '== null',
+# don't generate 'this.' and 'Me.' for events,
+# warn when not using 'this.' and 'Me.' for fields,
+# warn when not using 'this.' and 'Me.' for methods,
+# warn when not using 'this.' and 'Me.' for properties,
+# suggest readonly fields, and
+# generate accessibility modifiers for non interface members
+###############################################################################
+[*.cs]
+dotnet_style_coalesce_expression = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_explicit_tuple_names = true:suggestion
+dotnet_style_null_propagation = true:suggestion
+dotnet_style_object_initializer = true:suggestion
+
+dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
+dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
+dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
+dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
+
dotnet_style_predefined_type_for_locals_parameters_members = true:warning
-dotnet_style_predefined_type_for_member_access = true:warning
+dotnet_style_predefined_type_for_member_access = true:silent
+
+dotnet_style_prefer_auto_properties = true:silent
+dotnet_style_prefer_compound_assignment = true:suggestion
+dotnet_style_prefer_conditional_expression_over_assignment = true:silent
+dotnet_style_prefer_conditional_expression_over_return = true:silent
+dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
+dotnet_style_prefer_inferred_tuple_names = true:suggestion
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
+
+dotnet_style_qualification_for_event = false:silent
dotnet_style_qualification_for_field = true:warning
dotnet_style_qualification_for_method = true:warning
dotnet_style_qualification_for_property = true:warning
-[*.tt]
-indent_style = space
-indent_size = 4
\ No newline at end of file
+dotnet_style_readonly_field = true:suggestion
+dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
+
+###############################################################################
+# Set dotnet style options to:
+# suggest removing all unused parameters
+###############################################################################
+[*.cs]
+dotnet_code_quality_unused_parameters = all:suggestion
+
+###############################################################################
+# Set csharp indent options to:
+# indent block contents,
+# not indent braces,
+# indent case contents,
+# not indent case contents when block,
+# indent labels one less than the current, and
+# indent switch labels
+###############################################################################
+[*.cs]
+csharp_indent_block_contents = true
+csharp_indent_braces = false
+csharp_indent_case_contents = true
+csharp_indent_case_contents_when_block = false
+csharp_indent_labels = one_less_than_current
+csharp_indent_switch_labels = true
+
+###############################################################################
+# Set csharp new-line options to:
+# insert a new-line before "catch",
+# insert a new-line before "else",
+# insert a new-line before "finally",
+# insert a new-line before members in anonymous-types,
+# insert a new-line before members in object-initializers, and
+# insert a new-line before all open braces
+###############################################################################
+[*.cs]
+csharp_new_line_before_catch = true
+csharp_new_line_before_else = true
+csharp_new_line_before_finally = true
+
+csharp_new_line_before_members_in_anonymous_types = true
+csharp_new_line_before_members_in_object_initializers = true
+
+csharp_new_line_before_open_brace = all
+
+###############################################################################
+# Set csharp preserve options to:
+# preserve single-line blocks, and
+# preserve single-line statements
+###############################################################################
+[*.cs]
+csharp_preserve_single_line_blocks = true
+csharp_preserve_single_line_statements = true
+
+###############################################################################
+# Set csharp space options to:
+# remove any space after a cast,
+# add a space after the colon in an inheritance clause,
+# add a space after a comma,
+# remove any space after a dot,
+# add a space after keywords in control flow statements,
+# add a space after a semicolon in a "for" statement,
+# add a space before and after binary operators,
+# remove space around declaration statements,
+# add a space before the colon in an inheritance clause,
+# remove any space before a comma,
+# remove any space before a dot,
+# remove any space before an open square-bracket,
+# remove any space before a semicolon in a "for" statement,
+# remove any space between empty square-brackets,
+# remove any space between a method call's empty parameter list parenthesis,
+# remove any space between a method call's name and its opening parenthesis,
+# remove any space between a method call's parameter list parenthesis,
+# remove any space between a method declaration's empty parameter list parenthesis,
+# remove any space between a method declaration's name and its openening parenthesis,
+# remove any space between a method declaration's parameter list parenthesis,
+# remove any space between parentheses, and
+# remove any space between square brackets
+###############################################################################
+[*.cs]
+csharp_space_after_cast = false
+csharp_space_after_colon_in_inheritance_clause = true
+csharp_space_after_comma = true
+csharp_space_after_dot = false
+csharp_space_after_keywords_in_control_flow_statements = true
+csharp_space_after_semicolon_in_for_statement = true
+
+csharp_space_around_binary_operators = before_and_after
+csharp_space_around_declaration_statements = do_not_ignore
+
+csharp_space_before_colon_in_inheritance_clause = true
+csharp_space_before_comma = false
+csharp_space_before_dot = false
+csharp_space_before_open_square_brackets = false
+csharp_space_before_semicolon_in_for_statement = false
+
+csharp_space_between_empty_square_brackets = false
+csharp_space_between_method_call_empty_parameter_list_parentheses = false
+csharp_space_between_method_call_name_and_opening_parenthesis = false
+csharp_space_between_method_call_parameter_list_parentheses = false
+csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
+csharp_space_between_method_declaration_name_and_open_parenthesis = false
+csharp_space_between_method_declaration_parameter_list_parentheses = false
+csharp_space_between_parentheses = false
+csharp_space_between_square_brackets = false
+
+###############################################################################
+# Set csharp style options to:
+# generate braces,
+# suggest simple default expressions,
+# generate a preferred modifier order,
+# suggest conditional delegate calls,
+# suggest deconstructed variable declarations,
+# generate expression-bodied accessors,
+# don't generate expression-bodied constructors,
+# generate expression-bodied indexers,
+# generate expression-bodied lambdas,
+# don't generate expression-bodied methods,
+# don't generate expression-bodied operators,
+# generate expression-bodied properties,
+# suggest inlined variable declarations,
+# suggest local over anonymous functions,
+# suggest pattern-matching over "as" with "null" check,
+# suggest pattern-matching over "is" with "cast" check,
+# suggest throw expressions,
+# generate a discard variable for unused value expression statements,
+# suggest a discard variable for unused assignments,
+# warn when using var for built-in types,
+# warn when using var when the type is not apparent, and
+# warn when not using var when the type is apparent
+###############################################################################
+[*.cs]
+csharp_prefer_braces = true:silent
+csharp_prefer_simple_default_expression = true:suggestion
+csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
+
+csharp_style_conditional_delegate_call = true:suggestion
+csharp_style_deconstructed_variable_declaration = true:suggestion
+
+csharp_style_expression_bodied_accessors = true:silent
+csharp_style_expression_bodied_constructors = false:silent
+csharp_style_expression_bodied_indexers = true:silent
+csharp_style_expression_bodied_lambdas = true:silent
+csharp_style_expression_bodied_methods = false:silent
+csharp_style_expression_bodied_operators = false:silent
+csharp_style_expression_bodied_properties = true:silent
+
+csharp_style_inlined_variable_declaration = true:suggestion
+
+csharp_style_pattern_local_over_anonymous_function = true:suggestion
+csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
+csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
+
+csharp_style_throw_expression = true:suggestion
+
+csharp_style_unused_value_expression_statement_preference = discard_variable:silent
+csharp_style_unused_value_assignment_preference = discard_variable:suggestion
+
+csharp_style_var_for_built_in_types = false:warning
+csharp_style_var_elsewhere = false:warning
+csharp_style_var_when_type_is_apparent = true:warning
diff --git a/.gitattributes b/.gitattributes
index a664be3a85..adef3cc9ec 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,49 +1,108 @@
-*.doc diff=astextplain
-*.DOC diff=astextplain
-*.docx diff=astextplain
-*.DOCX diff=astextplain
-*.dot diff=astextplain
-*.DOT diff=astextplain
-*.pdf diff=astextplain
-*.PDF diff=astextplain
-*.rtf diff=astextplain
-*.RTF diff=astextplain
+###############################################################################
+# Set default behavior to:
+# treat as text and
+# normalize to Unix-style line endings
+###############################################################################
+* text eol=lf
-*.jpg binary
-*.png binary
-*.gif binary
+###############################################################################
+# Set explicit file behavior to:
+# treat as text and
+# normalize to Unix-style line endings
+###############################################################################
+*.asm text eol=lf
+*.c text eol=lf
+*.clj text eol=lf
+*.cmd text eol=lf
+*.cpp text eol=lf
+*.css text eol=lf
+*.cxx text eol=lf
+*.config text eol=lf
+*.DotSettings text eol=lf
+*.erl text eol=lf
+*.fs text eol=lf
+*.fsx text eol=lf
+*.h text eol=lf
+*.htm text eol=lf
+*.html text eol=lf
+*.hs text eol=lf
+*.hxx text eol=lf
+*.java text eol=lf
+*.js text eol=lf
+*.json text eol=lf
+*.less text eol=lf
+*.lisp text eol=lf
+*.lua text eol=lf
+*.m text eol=lf
+*.md text eol=lf
+*.php text eol=lf
+*.props text eol=lf
+*.ps1 text eol=lf
+*.py text eol=lf
+*.rb text eol=lf
+*.resx text eol=lf
+*.runsettings text eol=lf
+*.ruleset text eol=lf
+*.sass text eol=lf
+*.scss text eol=lf
+*.sh text eol=lf
+*.sql text eol=lf
+*.svg text eol=lf
+*.targets text eol=lf
+*.tt text eol=lf
+*.ttinclude text eol=lf
+*.txt text eol=lf
+*.vb text eol=lf
+*.yml text eol=lf
-*.cs text=auto diff=csharp
-*.vb text=auto
-*.c text=auto
-*.cpp text=auto
-*.cxx text=auto
-*.h text=auto
-*.hxx text=auto
-*.py text=auto
-*.rb text=auto
-*.java text=auto
-*.html text=auto
-*.htm text=auto
-*.css text=auto
-*.scss text=auto
-*.sass text=auto
-*.less text=auto
-*.js text=auto
-*.lisp text=auto
-*.clj text=auto
-*.sql text=auto
-*.php text=auto
-*.lua text=auto
-*.m text=auto
-*.asm text=auto
-*.erl text=auto
-*.fs text=auto
-*.fsx text=auto
-*.hs text=auto
+###############################################################################
+# Set explicit file behavior to:
+# treat as text
+# normalize to Unix-style line endings and
+# diff as csharp
+###############################################################################
+*.cs text eol=lf diff=csharp
-*.csproj text=auto merge=union
-*.vbproj text=auto merge=union
-*.fsproj text=auto merge=union
-*.dbproj text=auto merge=union
-*.sln text=auto eol=crlf merge=union
+###############################################################################
+# Set explicit file behavior to:
+# treat as text
+# normalize to Unix-style line endings and
+# use a union merge when resoling conflicts
+###############################################################################
+*.csproj text eol=lf merge=union
+*.dbproj text eol=lf merge=union
+*.fsproj text eol=lf merge=union
+*.ncrunchproject text eol=lf merge=union
+*.vbproj text eol=lf merge=union
+
+###############################################################################
+# Set explicit file behavior to:
+# treat as text
+# normalize to Windows-style line endings and
+# use a union merge when resoling conflicts
+###############################################################################
+*.sln text eol=crlf merge=union
+
+###############################################################################
+# Set explicit file behavior to:
+# treat as binary
+###############################################################################
+*.bmp binary
+*.dll binary
+*.exe binary
+*.gif binary
+*.jpg binary
+*.png binary
+*.ttf binary
+*.snk binary
+
+###############################################################################
+# Set explicit file behavior to:
+# diff as plain text
+###############################################################################
+*.doc diff=astextplain
+*.docx diff=astextplain
+*.dot diff=astextplain
+*.pdf diff=astextplain
+*.pptx diff=astextplain
+*.rtf diff=astextplain
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000000..9c92c14b8a
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)artifacts/
+ $(ImageSharpProjectCategory)/$(MSBuildProjectName)
+ https://github.com/SixLabors/ImageSharp/
+
+
+
+
+ true
+ $(BaseArtifactsPath)obj/$(BaseArtifactsPathSuffix)/
+ portable
+ full
+ disable
+ true
+ false
+ true
+ true
+
+
+
+ true
+
+
+
+
+ Six Labors and contributors
+ $(BaseArtifactsPath)bin/$(BaseArtifactsPathSuffix)/
+ Six Labors
+ $(BaseArtifactsPath)pkg/$(BaseArtifactsPathSuffix)/$(Configuration)/
+ SixLabors.ImageSharp
+ 0.0.1
+ $(PackageVersion)
+
+
+
+
+
+ $(MSBuildThisFileDirectory)standards/SixLabors.snk
+ Copyright © Six Labors and Contributors
+ strict;IOperation
+ true
+ 7.3
+ en
+ true
+ https://raw.githubusercontent.com/SixLabors/Branding/master/icons/imagesharp/sixlabors.imagesharp.128.png
+ Apache-2.0
+ $(RepositoryUrl)
+ true
+ git
+
+ https://www.myget.org/F/sixlabors/api/v3/index.json;
+ https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json;
+ https://api.nuget.org/v3/index.json;
+
+ 002400000c8000009400000006020000002400005253413100040000010001000147e6fe6766715eec6cfed61f1e7dcdbf69748a3e355c67e9d8dfd953acab1d5e012ba34b23308166fdc61ee1d0390d5f36d814a6091dd4b5ed9eda5a26afced924c683b4bfb4b3d64b0586a57eff9f02b1f84e3cb0ddd518bd1697f2c84dcbb97eb8bb5c7801be12112ed0ec86db934b0e9a5171e6bb1384b6d2f7d54dfa97
+ true
+
+
+
+
+
+
+
+
diff --git a/Directory.Build.targets b/Directory.Build.targets
new file mode 100644
index 0000000000..3504398794
--- /dev/null
+++ b/Directory.Build.targets
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+ $(DefineConstants);$(OS)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ImageSharp.ruleset b/ImageSharp.ruleset
deleted file mode 100644
index d318b75c2e..0000000000
--- a/ImageSharp.ruleset
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ImageSharp.sln b/ImageSharp.sln
index 3c3817bf63..1fd5e2d8b4 100644
--- a/ImageSharp.sln
+++ b/ImageSharp.sln
@@ -1,47 +1,356 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26730.12
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28902.138
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{C317F1B1-D75E-4C6D-83EB-80367343E0D7}"
ProjectSection(SolutionItems) = preProject
- standards\.editorconfig = standards\.editorconfig
+ .editorconfig = .editorconfig
+ .gitattributes = .gitattributes
+ .gitignore = .gitignore
+ .gitmodules = .gitmodules
.travis.yml = .travis.yml
appveyor.yml = appveyor.yml
- .github\ISSUE_TEMPLATE\ask-question.md = .github\ISSUE_TEMPLATE\ask-question.md
- .github\ISSUE_TEMPLATE\bug-report.md = .github\ISSUE_TEMPLATE\bug-report.md
+ build.cmd = build.cmd
+ build.ps1 = build.ps1
codecov.yml = codecov.yml
CodeCoverage.runsettings = CodeCoverage.runsettings
- .github\CONTRIBUTING.md = .github\CONTRIBUTING.md
- .github\ISSUE_TEMPLATE\feature-request.md = .github\ISSUE_TEMPLATE\feature-request.md
- features.md = features.md
+ Directory.Build.props = Directory.Build.props
+ Directory.Build.targets = Directory.Build.targets
ImageSharp.sln.DotSettings = ImageSharp.sln.DotSettings
- NuGet.config = NuGet.config
- .github\PULL_REQUEST_TEMPLATE.md = .github\PULL_REQUEST_TEMPLATE.md
+ LICENSE = LICENSE
README.md = README.md
run-tests.ps1 = run-tests.ps1
- standards\SixLabors.ruleset = standards\SixLabors.ruleset
- standards\stylecop.json = standards\stylecop.json
+ stylecop.json = stylecop.json
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{815C0625-CD3D-440F-9F80-2D83856AB7AE}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{1799C43E-5C54-4A8F-8D64-B1475241DB0D}"
ProjectSection(SolutionItems) = preProject
- src\README.md = src\README.md
+ .github\CONTRIBUTING.md = .github\CONTRIBUTING.md
+ .github\PULL_REQUEST_TEMPLATE.md = .github\PULL_REQUEST_TEMPLATE.md
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{56801022-D71A-4FBE-BC5B-CBA08E2284EC}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ISSUE_TEMPLATE", "ISSUE_TEMPLATE", "{FBE8C1AD-5AEC-4514-9B64-091D8E145865}"
+ ProjectSection(SolutionItems) = preProject
+ .github\ISSUE_TEMPLATE\ask-question.md = .github\ISSUE_TEMPLATE\ask-question.md
+ .github\ISSUE_TEMPLATE\bug-report.md = .github\ISSUE_TEMPLATE\bug-report.md
+ .github\ISSUE_TEMPLATE\feature-request.md = .github\ISSUE_TEMPLATE\feature-request.md
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".vscode", ".vscode", "{0274D4CF-9932-47CC-8E89-54DC05B8F06E}"
+ ProjectSection(SolutionItems) = preProject
+ .vscode\launch.json = .vscode\launch.json
+ .vscode\tasks.json = .vscode\tasks.json
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{E919DF0B-2607-4462-8FC0-5C98FE50F8C9}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{9E574A07-F879-4811-9C41-5CBDC6BAFDB7}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "icons", "icons", "{2B02E303-7CC6-4E15-97EE-DBE86B287553}"
ProjectSection(SolutionItems) = preProject
- src\Shared\AssemblyInfo.Common.cs = src\Shared\AssemblyInfo.Common.cs
+ build\icons\imagesharp-logo-128.png = build\icons\imagesharp-logo-128.png
+ build\icons\imagesharp-logo-256.png = build\icons\imagesharp-logo-256.png
+ build\icons\imagesharp-logo-32.png = build\icons\imagesharp-logo-32.png
+ build\icons\imagesharp-logo-512.png = build\icons\imagesharp-logo-512.png
+ build\icons\imagesharp-logo-64.png = build\icons\imagesharp-logo-64.png
+ build\icons\imagesharp-logo.png = build\icons\imagesharp-logo.png
+ build\icons\imagesharp-logo.svg = build\icons\imagesharp-logo.svg
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{815C0625-CD3D-440F-9F80-2D83856AB7AE}"
+ ProjectSection(SolutionItems) = preProject
+ src\Directory.Build.props = src\Directory.Build.props
+ src\Directory.Build.targets = src\Directory.Build.targets
+ src\README.md = src\README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageSharp", "src\ImageSharp\ImageSharp.csproj", "{2AA31A1F-142C-43F4-8687-09ABCA4B3A26}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageSharp.Drawing", "src\ImageSharp.Drawing\ImageSharp.Drawing.csproj", "{2E33181E-6E28-4662-A801-E2E7DC206029}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{56801022-D71A-4FBE-BC5B-CBA08E2284EC}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Directory.Build.props = tests\Directory.Build.props
+ tests\Directory.Build.targets = tests\Directory.Build.targets
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CodeCoverage", "CodeCoverage", "{D4C5EC58-F8E6-4636-B9EE-C99D2578E5C6}"
+ ProjectSection(SolutionItems) = preProject
+ tests\CodeCoverage\CodeCoverage.cmd = tests\CodeCoverage\CodeCoverage.cmd
+ tests\CodeCoverage\packages.config = tests\CodeCoverage\packages.config
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Images", "Images", "{FA55F5DE-11A6-487D-ABA4-BC93A02717DD}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Input", "Input", "{9DA226A1-8656-49A8-A58A-A8B5C081AD66}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Bmp", "Bmp", "{1A82C5F6-90E0-4E97-BE16-A825C046B493}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Bmp\BitmapCoreHeaderQR.bmp = tests\Images\Input\Bmp\BitmapCoreHeaderQR.bmp
+ tests\Images\Input\Bmp\BITMAPV5HEADER.bmp = tests\Images\Input\Bmp\BITMAPV5HEADER.bmp
+ tests\Images\Input\Bmp\Car.bmp = tests\Images\Input\Bmp\Car.bmp
+ tests\Images\Input\Bmp\F.bmp = tests\Images\Input\Bmp\F.bmp
+ tests\Images\Input\Bmp\issue735.bmp = tests\Images\Input\Bmp\issue735.bmp
+ tests\Images\Input\Bmp\neg_height.bmp = tests\Images\Input\Bmp\neg_height.bmp
+ tests\Images\Input\Bmp\pal1.bmp = tests\Images\Input\Bmp\pal1.bmp
+ tests\Images\Input\Bmp\pal1p1.bmp = tests\Images\Input\Bmp\pal1p1.bmp
+ tests\Images\Input\Bmp\pal4.bmp = tests\Images\Input\Bmp\pal4.bmp
+ tests\Images\Input\Bmp\pal4rle.bmp = tests\Images\Input\Bmp\pal4rle.bmp
+ tests\Images\Input\Bmp\pal8-0.bmp = tests\Images\Input\Bmp\pal8-0.bmp
+ tests\Images\Input\Bmp\pal8gs.bmp = tests\Images\Input\Bmp\pal8gs.bmp
+ tests\Images\Input\Bmp\pal8offs.bmp = tests\Images\Input\Bmp\pal8offs.bmp
+ tests\Images\Input\Bmp\pal8os2sp.bmp = tests\Images\Input\Bmp\pal8os2sp.bmp
+ tests\Images\Input\Bmp\pal8os2v1_winv2.bmp = tests\Images\Input\Bmp\pal8os2v1_winv2.bmp
+ tests\Images\Input\Bmp\pal8os2v2-16.bmp = tests\Images\Input\Bmp\pal8os2v2-16.bmp
+ tests\Images\Input\Bmp\pal8os2v2.bmp = tests\Images\Input\Bmp\pal8os2v2.bmp
+ tests\Images\Input\Bmp\pal8v4.bmp = tests\Images\Input\Bmp\pal8v4.bmp
+ tests\Images\Input\Bmp\pal8v5.bmp = tests\Images\Input\Bmp\pal8v5.bmp
+ tests\Images\Input\Bmp\rgb16-565.bmp = tests\Images\Input\Bmp\rgb16-565.bmp
+ tests\Images\Input\Bmp\rgb16-565pal.bmp = tests\Images\Input\Bmp\rgb16-565pal.bmp
+ tests\Images\Input\Bmp\rgb16.bmp = tests\Images\Input\Bmp\rgb16.bmp
+ tests\Images\Input\Bmp\rgb16bfdef.bmp = tests\Images\Input\Bmp\rgb16bfdef.bmp
+ tests\Images\Input\Bmp\rgb24.bmp = tests\Images\Input\Bmp\rgb24.bmp
+ tests\Images\Input\Bmp\rgb32.bmp = tests\Images\Input\Bmp\rgb32.bmp
+ tests\Images\Input\Bmp\rgb32bf.bmp = tests\Images\Input\Bmp\rgb32bf.bmp
+ tests\Images\Input\Bmp\rgb32bfdef.bmp = tests\Images\Input\Bmp\rgb32bfdef.bmp
+ tests\Images\Input\Bmp\rgba32-1010102.bmp = tests\Images\Input\Bmp\rgba32-1010102.bmp
+ tests\Images\Input\Bmp\rgba32.bmp = tests\Images\Input\Bmp\rgba32.bmp
+ tests\Images\Input\Bmp\rgba32abf.bmp = tests\Images\Input\Bmp\rgba32abf.bmp
+ tests\Images\Input\Bmp\rgba32h56.bmp = tests\Images\Input\Bmp\rgba32h56.bmp
+ tests\Images\Input\Bmp\RunLengthEncoded-inverted.bmp = tests\Images\Input\Bmp\RunLengthEncoded-inverted.bmp
+ tests\Images\Input\Bmp\RunLengthEncoded.bmp = tests\Images\Input\Bmp\RunLengthEncoded.bmp
+ tests\Images\Input\Bmp\test16-inverted.bmp = tests\Images\Input\Bmp\test16-inverted.bmp
+ tests\Images\Input\Bmp\test16.bmp = tests\Images\Input\Bmp\test16.bmp
+ tests\Images\Input\Bmp\test8-inverted.bmp = tests\Images\Input\Bmp\test8-inverted.bmp
+ tests\Images\Input\Bmp\test8.bmp = tests\Images\Input\Bmp\test8.bmp
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gif", "Gif", "{EE3FB0B3-1C31-41E9-93AB-BA800560A868}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Gif\base_1x4.gif = tests\Images\Input\Gif\base_1x4.gif
+ tests\Images\Input\Gif\base_4x1.gif = tests\Images\Input\Gif\base_4x1.gif
+ tests\Images\Input\Gif\cheers.gif = tests\Images\Input\Gif\cheers.gif
+ tests\Images\Input\Gif\giphy.gif = tests\Images\Input\Gif\giphy.gif
+ tests\Images\Input\Gif\kumin.gif = tests\Images\Input\Gif\kumin.gif
+ tests\Images\Input\Gif\leo.gif = tests\Images\Input\Gif\leo.gif
+ tests\Images\Input\Gif\rings.gif = tests\Images\Input\Gif\rings.gif
+ tests\Images\Input\Gif\trans.gif = tests\Images\Input\Gif\trans.gif
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "issues", "issues", "{BF8DFDC1-CEE5-4A37-B216-D3085360C776}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Gif\issues\issue403_baddescriptorwidth.gif = tests\Images\Input\Gif\issues\issue403_baddescriptorwidth.gif
+ tests\Images\Input\Gif\issues\issue405_badappextlength252-2.gif = tests\Images\Input\Gif\issues\issue405_badappextlength252-2.gif
+ tests\Images\Input\Gif\issues\issue405_badappextlength252.gif = tests\Images\Input\Gif\issues\issue405_badappextlength252.gif
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Jpg", "Jpg", "{DB21FED7-E8CB-4B00-9EB2-9144D32A590A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "baseline", "baseline", "{195BA3D3-3E9F-4BC5-AB40-5F9FEB638146}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Jpg\baseline\AsianCarvingLowContrast.jpg = tests\Images\Input\Jpg\baseline\AsianCarvingLowContrast.jpg
+ tests\Images\Input\Jpg\baseline\badeof.jpg = tests\Images\Input\Jpg\baseline\badeof.jpg
+ tests\Images\Input\Jpg\baseline\badrst.jpg = tests\Images\Input\Jpg\baseline\badrst.jpg
+ tests\Images\Input\Jpg\baseline\Calliphora.jpg = tests\Images\Input\Jpg\baseline\Calliphora.jpg
+ tests\Images\Input\Jpg\baseline\cmyk.jpg = tests\Images\Input\Jpg\baseline\cmyk.jpg
+ tests\Images\Input\Jpg\baseline\exif.jpg = tests\Images\Input\Jpg\baseline\exif.jpg
+ tests\Images\Input\Jpg\baseline\Floorplan.jpg = tests\Images\Input\Jpg\baseline\Floorplan.jpg
+ tests\Images\Input\Jpg\baseline\gamma_dalai_lama_gray.jpg = tests\Images\Input\Jpg\baseline\gamma_dalai_lama_gray.jpg
+ tests\Images\Input\Jpg\baseline\Hiyamugi.jpg = tests\Images\Input\Jpg\baseline\Hiyamugi.jpg
+ tests\Images\Input\Jpg\baseline\jpeg400jfif.jpg = tests\Images\Input\Jpg\baseline\jpeg400jfif.jpg
+ tests\Images\Input\Jpg\baseline\jpeg420exif.jpg = tests\Images\Input\Jpg\baseline\jpeg420exif.jpg
+ tests\Images\Input\Jpg\baseline\jpeg420small.jpg = tests\Images\Input\Jpg\baseline\jpeg420small.jpg
+ tests\Images\Input\Jpg\baseline\jpeg444.jpg = tests\Images\Input\Jpg\baseline\jpeg444.jpg
+ tests\Images\Input\Jpg\baseline\Lake.jpg = tests\Images\Input\Jpg\baseline\Lake.jpg
+ tests\Images\Input\Jpg\baseline\MultiScanBaselineCMYK.jpg = tests\Images\Input\Jpg\baseline\MultiScanBaselineCMYK.jpg
+ tests\Images\Input\Jpg\baseline\ratio-1x1.jpg = tests\Images\Input\Jpg\baseline\ratio-1x1.jpg
+ tests\Images\Input\Jpg\baseline\Snake.jpg = tests\Images\Input\Jpg\baseline\Snake.jpg
+ tests\Images\Input\Jpg\baseline\testimgint.jpg = tests\Images\Input\Jpg\baseline\testimgint.jpg
+ tests\Images\Input\Jpg\baseline\testorig.jpg = tests\Images\Input\Jpg\baseline\testorig.jpg
+ tests\Images\Input\Jpg\baseline\testorig12.jpg = tests\Images\Input\Jpg\baseline\testorig12.jpg
+ tests\Images\Input\Jpg\baseline\turtle.jpg = tests\Images\Input\Jpg\baseline\turtle.jpg
+ tests\Images\Input\Jpg\baseline\ycck-subsample-1222.jpg = tests\Images\Input\Jpg\baseline\ycck-subsample-1222.jpg
+ tests\Images\Input\Jpg\baseline\ycck.jpg = tests\Images\Input\Jpg\baseline\ycck.jpg
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JpegSnoopReports", "JpegSnoopReports", "{538F0EBD-4084-4EDB-93DD-6D35B733CA48}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\badeof.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\badeof.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\badrst.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\badrst.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\Calliphora.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\Calliphora.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\cmyk.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\cmyk.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\exif.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\exif.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\Floorplan.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\Floorplan.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\gamma_dalai_lama_gray.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\gamma_dalai_lama_gray.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\Hiyamugi.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\Hiyamugi.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\jpeg400jfif.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\jpeg400jfif.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\jpeg420exif.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\jpeg420exif.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\jpeg420small.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\jpeg420small.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\jpeg444.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\jpeg444.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\Lake.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\Lake.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\MultiScanBaselineCMYK.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\MultiScanBaselineCMYK.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\ratio-1x1.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\ratio-1x1.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\Snake.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\Snake.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\testimgint.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\testimgint.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\testorig.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\testorig.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\turtle.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\turtle.jpg.txt
+ tests\Images\Input\Jpg\baseline\JpegSnoopReports\ycck.jpg.txt = tests\Images\Input\Jpg\baseline\JpegSnoopReports\ycck.jpg.txt
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "issues", "issues", "{5C9B689F-B96D-47BE-A208-C23B1B2A8570}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Jpg\issues\Issue159-MissingFF00-Progressive-Bedroom.jpg = tests\Images\Input\Jpg\issues\Issue159-MissingFF00-Progressive-Bedroom.jpg
+ tests\Images\Input\Jpg\issues\Issue159-MissingFF00-Progressive-Girl.jpg = tests\Images\Input\Jpg\issues\Issue159-MissingFF00-Progressive-Girl.jpg
+ tests\Images\Input\Jpg\issues\Issue178-BadCoeffsProgressive-Lemon.jpg = tests\Images\Input\Jpg\issues\Issue178-BadCoeffsProgressive-Lemon.jpg
+ tests\Images\Input\Jpg\issues\Issue214-CriticalEOF.jpg = tests\Images\Input\Jpg\issues\Issue214-CriticalEOF.jpg
+ tests\Images\Input\Jpg\issues\Issue385-BadZigZag-Progressive.jpg = tests\Images\Input\Jpg\issues\Issue385-BadZigZag-Progressive.jpg
+ tests\Images\Input\Jpg\issues\Issue394-MultiHuffmanBaseline-Speakers.jpg = tests\Images\Input\Jpg\issues\Issue394-MultiHuffmanBaseline-Speakers.jpg
+ tests\Images\Input\Jpg\issues\Issue517-No-EOI-Progressive.jpg = tests\Images\Input\Jpg\issues\Issue517-No-EOI-Progressive.jpg
+ tests\Images\Input\Jpg\issues\Issue518-Bad-RST-Progressive.jpg = tests\Images\Input\Jpg\issues\Issue518-Bad-RST-Progressive.jpg
+ tests\Images\Input\Jpg\issues\Issue520-InvalidCast.jpg = tests\Images\Input\Jpg\issues\Issue520-InvalidCast.jpg
+ tests\Images\Input\Jpg\issues\Issue624-DhtHasWrongLength-Progressive-N.jpg = tests\Images\Input\Jpg\issues\Issue624-DhtHasWrongLength-Progressive-N.jpg
+ tests\Images\Input\Jpg\issues\Issue694-Decode-Exif-OutOfRange.jpg = tests\Images\Input\Jpg\issues\Issue694-Decode-Exif-OutOfRange.jpg
+ tests\Images\Input\Jpg\issues\Issue695-Invalid-EOI.jpg = tests\Images\Input\Jpg\issues\Issue695-Invalid-EOI.jpg
+ tests\Images\Input\Jpg\issues\Issue696-Resize-Exif-OutOfRange.jpg = tests\Images\Input\Jpg\issues\Issue696-Resize-Exif-OutOfRange.jpg
+ tests\Images\Input\Jpg\issues\Issue721-InvalidAPP0.jpg = tests\Images\Input\Jpg\issues\Issue721-InvalidAPP0.jpg
+ tests\Images\Input\Jpg\issues\Issue723-Ordered-Interleaved-Progressive-A.jpg = tests\Images\Input\Jpg\issues\Issue723-Ordered-Interleaved-Progressive-A.jpg
+ tests\Images\Input\Jpg\issues\Issue723-Ordered-Interleaved-Progressive-B.jpg = tests\Images\Input\Jpg\issues\Issue723-Ordered-Interleaved-Progressive-B.jpg
+ tests\Images\Input\Jpg\issues\Issue723-Ordered-Interleaved-Progressive-C.jpg = tests\Images\Input\Jpg\issues\Issue723-Ordered-Interleaved-Progressive-C.jpg
+ tests\Images\Input\Jpg\issues\issue750-exif-load.jpg = tests\Images\Input\Jpg\issues\issue750-exif-load.jpg
+ tests\Images\Input\Jpg\issues\issue750-exif-tranform.jpg = tests\Images\Input\Jpg\issues\issue750-exif-tranform.jpg
+ tests\Images\Input\Jpg\issues\Issue845-Incorrect-Quality99.jpg = tests\Images\Input\Jpg\issues\Issue845-Incorrect-Quality99.jpg
+ tests\Images\Input\Jpg\issues\issue855-incorrect-colorspace.jpg = tests\Images\Input\Jpg\issues\issue855-incorrect-colorspace.jpg
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fuzz", "fuzz", "{516A3532-6AC2-417B-AD79-9BD5D0D378A0}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Jpg\issues\fuzz\Issue797-NullReferenceException.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue797-NullReferenceException.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue798-AccessViolationException.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue798-AccessViolationException.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue821-DivideByZeroException.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue821-DivideByZeroException.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue822-DivideByZeroException.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue822-DivideByZeroException.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue823-NullReferenceException.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue823-NullReferenceException.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-A.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-A.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-B.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-B.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-C.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-C.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-D.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-D.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-E.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-E.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-F.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-F.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-G.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-G.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-H.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue824-IndexOutOfRangeException-H.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue825-ArgumentOutOfRangeException-A.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue825-ArgumentOutOfRangeException-A.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue825-ArgumentOutOfRangeException-B.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue825-ArgumentOutOfRangeException-B.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue825-ArgumentOutOfRangeException-C.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue825-ArgumentOutOfRangeException-C.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue825-ArgumentOutOfRangeException-D.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue825-ArgumentOutOfRangeException-D.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue826-ArgumentException-A.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue826-ArgumentException-A.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue826-ArgumentException-B.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue826-ArgumentException-B.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue826-ArgumentException-C.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue826-ArgumentException-C.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue827-AccessViolationException.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue827-AccessViolationException.jpg
+ tests\Images\Input\Jpg\issues\fuzz\Issue839-ExecutionEngineException.jpg = tests\Images\Input\Jpg\issues\fuzz\Issue839-ExecutionEngineException.jpg
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JpegSnoopReports", "JpegSnoopReports", "{714CDEA1-9AE6-4F76-B8B1-A7DB8C1DB82F}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue159-MissingFF00-Progressive-Bedroom.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue159-MissingFF00-Progressive-Bedroom.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue159-MissingFF00-Progressive-Girl.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue159-MissingFF00-Progressive-Girl.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue178-BadCoeffsProgressive-Lemon.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue178-BadCoeffsProgressive-Lemon.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue214-CriticalEOF .jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue214-CriticalEOF .jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue385-BadZigZag-Progressive.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue385-BadZigZag-Progressive.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue394-MultiHuffmanBaseline-Speakers.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue394-MultiHuffmanBaseline-Speakers.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue517-No-EOI-Progressive.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue517-No-EOI-Progressive.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue518-Bad-RST-Progressive.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue518-Bad-RST-Progressive.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue520-InvalidCast.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue520-InvalidCast.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue624-DhtHasWrongLength-Progressive-N.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue624-DhtHasWrongLength-Progressive-N.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue694-Decode-Exif-OutOfRange.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue694-Decode-Exif-OutOfRange.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue695-Invalid-EOI.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue695-Invalid-EOI.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue696-Resize-Exif-OutOfRange.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue696-Resize-Exif-OutOfRange.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue721-InvalidAPP0.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue721-InvalidAPP0.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue723-Ordered-Interleaved-Progressive-A.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue723-Ordered-Interleaved-Progressive-A.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue723-Ordered-Interleaved-Progressive-B.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue723-Ordered-Interleaved-Progressive-B.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue723-Ordered-Interleaved-Progressive-C.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\Issue723-Ordered-Interleaved-Progressive-C.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\issue750-exif-load.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\issue750-exif-load.jpg.txt
+ tests\Images\Input\Jpg\issues\JpegSnoopReports\issue750-exif-tranform.jpg.txt = tests\Images\Input\Jpg\issues\JpegSnoopReports\issue750-exif-tranform.jpg.txt
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "progressive", "progressive", "{6458AFCB-A159-47D5-8F2B-50C95C0915E0}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Jpg\progressive\BadEofProgressive.jpg = tests\Images\Input\Jpg\progressive\BadEofProgressive.jpg
+ tests\Images\Input\Jpg\progressive\ExifUndefType.jpg = tests\Images\Input\Jpg\progressive\ExifUndefType.jpg
+ tests\Images\Input\Jpg\progressive\fb.jpg = tests\Images\Input\Jpg\progressive\fb.jpg
+ tests\Images\Input\Jpg\progressive\Festzug.jpg = tests\Images\Input\Jpg\progressive\Festzug.jpg
+ tests\Images\Input\Jpg\progressive\progress.jpg = tests\Images\Input\Jpg\progressive\progress.jpg
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JpegSnoopReports", "JpegSnoopReports", "{39F5197B-CF6C-41A5-9739-7F97E78BB104}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Jpg\progressive\JpegSnoopReports\BadEofProgressive.jpg.txt = tests\Images\Input\Jpg\progressive\JpegSnoopReports\BadEofProgressive.jpg.txt
+ tests\Images\Input\Jpg\progressive\JpegSnoopReports\ExifUndefType.jpg.txt = tests\Images\Input\Jpg\progressive\JpegSnoopReports\ExifUndefType.jpg.txt
+ tests\Images\Input\Jpg\progressive\JpegSnoopReports\fb.jpg.txt = tests\Images\Input\Jpg\progressive\JpegSnoopReports\fb.jpg.txt
+ tests\Images\Input\Jpg\progressive\JpegSnoopReports\Festzug.jpg.txt = tests\Images\Input\Jpg\progressive\JpegSnoopReports\Festzug.jpg.txt
+ tests\Images\Input\Jpg\progressive\JpegSnoopReports\progress.jpg.txt = tests\Images\Input\Jpg\progressive\JpegSnoopReports\progress.jpg.txt
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Png", "Png", "{E1C42A6F-913B-4A7B-B1A8-2BB62843B254}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Images\Input\Png\banner7-adam.png = tests\Images\Input\Png\banner7-adam.png
+ tests\Images\Input\Png\banner8-index.png = tests\Images\Input\Png\banner8-index.png
+ tests\Images\Input\Png\big-corrupted-chunk.png = tests\Images\Input\Png\big-corrupted-chunk.png
+ tests\Images\Input\Png\Bike.png = tests\Images\Input\Png\Bike.png
+ tests\Images\Input\Png\BikeGrayscale.png = tests\Images\Input\Png\BikeGrayscale.png
+ tests\Images\Input\Png\blur.png = tests\Images\Input\Png\blur.png
+ tests\Images\Input\Png\bpp1.png = tests\Images\Input\Png\bpp1.png
+ tests\Images\Input\Png\CalliphoraPartial.png = tests\Images\Input\Png\CalliphoraPartial.png
+ tests\Images\Input\Png\CalliphoraPartialGrayscale.png = tests\Images\Input\Png\CalliphoraPartialGrayscale.png
+ tests\Images\Input\Png\chunklength1.png = tests\Images\Input\Png\chunklength1.png
+ tests\Images\Input\Png\chunklength2.png = tests\Images\Input\Png\chunklength2.png
+ tests\Images\Input\Png\cross.png = tests\Images\Input\Png\cross.png
+ tests\Images\Input\Png\ducky.png = tests\Images\Input\Png\ducky.png
+ tests\Images\Input\Png\filter0.png = tests\Images\Input\Png\filter0.png
+ tests\Images\Input\Png\filter1.png = tests\Images\Input\Png\filter1.png
+ tests\Images\Input\Png\filter2.png = tests\Images\Input\Png\filter2.png
+ tests\Images\Input\Png\filter3.png = tests\Images\Input\Png\filter3.png
+ tests\Images\Input\Png\filter4.png = tests\Images\Input\Png\filter4.png
+ tests\Images\Input\Png\filterVar.png = tests\Images\Input\Png\filterVar.png
+ tests\Images\Input\Png\gray-1-trns.png = tests\Images\Input\Png\gray-1-trns.png
+ tests\Images\Input\Png\gray-16-tRNS-interlaced.png = tests\Images\Input\Png\gray-16-tRNS-interlaced.png
+ tests\Images\Input\Png\gray-16.png = tests\Images\Input\Png\gray-16.png
+ tests\Images\Input\Png\gray-2-tRNS.png = tests\Images\Input\Png\gray-2-tRNS.png
+ tests\Images\Input\Png\gray-4-tRNS.png = tests\Images\Input\Png\gray-4-tRNS.png
+ tests\Images\Input\Png\gray-8-tRNS.png = tests\Images\Input\Png\gray-8-tRNS.png
+ tests\Images\Input\Png\gray-alpha-16.png = tests\Images\Input\Png\gray-alpha-16.png
+ tests\Images\Input\Png\gray-alpha-8.png = tests\Images\Input\Png\gray-alpha-8.png
+ tests\Images\Input\Png\gray_4bpp.png = tests\Images\Input\Png\gray_4bpp.png
+ tests\Images\Input\Png\icon.png = tests\Images\Input\Png\icon.png
+ tests\Images\Input\Png\iftbbn0g01.png = tests\Images\Input\Png\iftbbn0g01.png
+ tests\Images\Input\Png\iftbbn0g02.png = tests\Images\Input\Png\iftbbn0g02.png
+ tests\Images\Input\Png\iftbbn0g04.png = tests\Images\Input\Png\iftbbn0g04.png
+ tests\Images\Input\Png\indexed.png = tests\Images\Input\Png\indexed.png
+ tests\Images\Input\Png\interlaced.png = tests\Images\Input\Png\interlaced.png
+ tests\Images\Input\Png\kaboom.png = tests\Images\Input\Png\kaboom.png
+ tests\Images\Input\Png\low-variance.png = tests\Images\Input\Png\low-variance.png
+ tests\Images\Input\Png\palette-8bpp.png = tests\Images\Input\Png\palette-8bpp.png
+ tests\Images\Input\Png\pd-dest.png = tests\Images\Input\Png\pd-dest.png
+ tests\Images\Input\Png\pd-source.png = tests\Images\Input\Png\pd-source.png
+ tests\Images\Input\Png\pd.png = tests\Images\Input\Png\pd.png
+ tests\Images\Input\Png\pl.png = tests\Images\Input\Png\pl.png
+ tests\Images\Input\Png\pp.png = tests\Images\Input\Png\pp.png
+ tests\Images\Input\Png\rainbow.png = tests\Images\Input\Png\rainbow.png
+ tests\Images\Input\Png\ratio-1x4.png = tests\Images\Input\Png\ratio-1x4.png
+ tests\Images\Input\Png\ratio-4x1.png = tests\Images\Input\Png\ratio-4x1.png
+ tests\Images\Input\Png\rgb-16-alpha.png = tests\Images\Input\Png\rgb-16-alpha.png
+ tests\Images\Input\Png\rgb-16-tRNS.png = tests\Images\Input\Png\rgb-16-tRNS.png
+ tests\Images\Input\Png\rgb-48bpp-interlaced.png = tests\Images\Input\Png\rgb-48bpp-interlaced.png
+ tests\Images\Input\Png\rgb-48bpp.png = tests\Images\Input\Png\rgb-48bpp.png
+ tests\Images\Input\Png\rgb-8-tRNS.png = tests\Images\Input\Png\rgb-8-tRNS.png
+ tests\Images\Input\Png\rollsroyce.png = tests\Images\Input\Png\rollsroyce.png
+ tests\Images\Input\Png\SnakeGame.png = tests\Images\Input\Png\SnakeGame.png
+ tests\Images\Input\Png\splash-interlaced.png = tests\Images\Input\Png\splash-interlaced.png
+ tests\Images\Input\Png\splash.png = tests\Images\Input\Png\splash.png
+ tests\Images\Input\Png\versioning-1_1.png = tests\Images\Input\Png\versioning-1_1.png
+ tests\Images\Input\Png\versioning-1_2.png = tests\Images\Input\Png\versioning-1_2.png
+ tests\Images\Input\Png\vim16x16_1.png = tests\Images\Input\Png\vim16x16_1.png
+ tests\Images\Input\Png\vim16x16_2.png = tests\Images\Input\Png\vim16x16_2.png
+ tests\Images\Input\Png\zlib-overflow.png = tests\Images\Input\Png\zlib-overflow.png
+ EndProjectSection
+EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageSharp.Tests", "tests\ImageSharp.Tests\ImageSharp.Tests.csproj", "{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ImageSharp.Benchmarks", "tests\ImageSharp.Benchmarks\ImageSharp.Benchmarks.csproj", "{2BF743D8-2A06-412D-96D7-F448F00C5EA5}"
@@ -123,9 +432,25 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {9E574A07-F879-4811-9C41-5CBDC6BAFDB7} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
+ {FBE8C1AD-5AEC-4514-9B64-091D8E145865} = {1799C43E-5C54-4A8F-8D64-B1475241DB0D}
+ {2B02E303-7CC6-4E15-97EE-DBE86B287553} = {E919DF0B-2607-4462-8FC0-5C98FE50F8C9}
{2AA31A1F-142C-43F4-8687-09ABCA4B3A26} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
{2E33181E-6E28-4662-A801-E2E7DC206029} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
+ {D4C5EC58-F8E6-4636-B9EE-C99D2578E5C6} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
+ {FA55F5DE-11A6-487D-ABA4-BC93A02717DD} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
+ {9DA226A1-8656-49A8-A58A-A8B5C081AD66} = {FA55F5DE-11A6-487D-ABA4-BC93A02717DD}
+ {1A82C5F6-90E0-4E97-BE16-A825C046B493} = {9DA226A1-8656-49A8-A58A-A8B5C081AD66}
+ {EE3FB0B3-1C31-41E9-93AB-BA800560A868} = {9DA226A1-8656-49A8-A58A-A8B5C081AD66}
+ {BF8DFDC1-CEE5-4A37-B216-D3085360C776} = {EE3FB0B3-1C31-41E9-93AB-BA800560A868}
+ {DB21FED7-E8CB-4B00-9EB2-9144D32A590A} = {9DA226A1-8656-49A8-A58A-A8B5C081AD66}
+ {195BA3D3-3E9F-4BC5-AB40-5F9FEB638146} = {DB21FED7-E8CB-4B00-9EB2-9144D32A590A}
+ {538F0EBD-4084-4EDB-93DD-6D35B733CA48} = {195BA3D3-3E9F-4BC5-AB40-5F9FEB638146}
+ {5C9B689F-B96D-47BE-A208-C23B1B2A8570} = {DB21FED7-E8CB-4B00-9EB2-9144D32A590A}
+ {516A3532-6AC2-417B-AD79-9BD5D0D378A0} = {5C9B689F-B96D-47BE-A208-C23B1B2A8570}
+ {714CDEA1-9AE6-4F76-B8B1-A7DB8C1DB82F} = {5C9B689F-B96D-47BE-A208-C23B1B2A8570}
+ {6458AFCB-A159-47D5-8F2B-50C95C0915E0} = {DB21FED7-E8CB-4B00-9EB2-9144D32A590A}
+ {39F5197B-CF6C-41A5-9739-7F97E78BB104} = {6458AFCB-A159-47D5-8F2B-50C95C0915E0}
+ {E1C42A6F-913B-4A7B-B1A8-2BB62843B254} = {9DA226A1-8656-49A8-A58A-A8B5C081AD66}
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
{2BF743D8-2A06-412D-96D7-F448F00C5EA5} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
{561B880A-D9EE-44EF-90F5-817C54A9D9AB} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
diff --git a/NuGet.config b/NuGet.config
deleted file mode 100644
index 322105d4d4..0000000000
--- a/NuGet.config
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
new file mode 100644
index 0000000000..cd3d5e8cb3
--- /dev/null
+++ b/src/Directory.Build.props
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileDirectory)..\Directory.Build.props
+ src
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\standards\SixLabors.ruleset
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
new file mode 100644
index 0000000000..c0e01ae586
--- /dev/null
+++ b/src/Directory.Build.targets
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileDirectory)..\Directory.Build.targets
+
+
+
+
+
+ $(IntermediateOutputPath)$(MSBuildProjectName).InternalsVisibleTo$(DefaultLanguageSourceExtension)
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ImageSharp.Drawing/ImageSharp.Drawing.csproj b/src/ImageSharp.Drawing/ImageSharp.Drawing.csproj
index f9181b45da..a092e3604b 100644
--- a/src/ImageSharp.Drawing/ImageSharp.Drawing.csproj
+++ b/src/ImageSharp.Drawing/ImageSharp.Drawing.csproj
@@ -1,55 +1,23 @@
-
+
+
+
+ SixLabors.ImageSharp.Drawing
SixLabors.ImageSharp.Drawing
- SixLabors and contributors
- Six Labors
- Copyright (c) Six Labors and contributors.
- SixLabors.ImageSharp
An extension to ImageSharp that allows the drawing of images, paths, and text.
- en
-
- $(packageversion)
- 0.0.1
-
- netcoreapp2.1;netstandard1.3;netstandard2.0
-
- 7.3
- true
- true
- SixLabors.ImageSharp.Drawing
SixLabors.ImageSharp.Drawing
Image Draw Shape Path Font
- https://raw.githubusercontent.com/SixLabors/Branding/master/icons/imagesharp/sixlabors.imagesharp.128.png
- https://github.com/SixLabors/ImageSharp
- http://www.apache.org/licenses/LICENSE-2.0
- git
- https://github.com/SixLabors/ImageSharp
- full
- portable
- True
+ SixLabors.ImageSharp
+ netcoreapp2.1;netstandard1.3;netstandard2.0
-
+
+
-
-
-
-
-
-
-
-
- ..\..\standards\SixLabors.ruleset
- SixLabors.ImageSharp
-
-
-
- true
-
-
\ No newline at end of file
+
diff --git a/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs b/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs
deleted file mode 100644
index 2891598b9b..0000000000
--- a/src/ImageSharp.Drawing/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-// Common values read from `AssemblyInfo.Common.cs`
diff --git a/src/ImageSharp/ImageSharp.csproj b/src/ImageSharp/ImageSharp.csproj
index 832a6ce3f9..a3d614a067 100644
--- a/src/ImageSharp/ImageSharp.csproj
+++ b/src/ImageSharp/ImageSharp.csproj
@@ -1,33 +1,14 @@
-
+
+
+
+ SixLabors.ImageSharp
SixLabors.ImageSharp
- Six Labors and contributors
- Six Labors
- Copyright (c) Six Labors and contributors.
- SixLabors.ImageSharp
A cross-platform library for the processing of image files; written in C#
- en
-
- $(packageversion)
- 0.0.1
-
- netcoreapp2.1;netstandard1.3;netstandard2.0;net472
-
- true
- true
- SixLabors.ImageSharp
SixLabors.ImageSharp
Image Resize Crop Gif Jpg Jpeg Bitmap Png Core
- https://raw.githubusercontent.com/SixLabors/Branding/master/icons/imagesharp/sixlabors.imagesharp.128.png
- https://github.com/SixLabors/ImageSharp
- http://www.apache.org/licenses/LICENSE-2.0
- git
- https://github.com/SixLabors/ImageSharp
- full
- portable
- True
- IOperation
- 7.3
+ SixLabors.ImageSharp
+ netcoreapp2.1;netstandard1.3;netstandard2.0;net472
@@ -35,93 +16,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ..\..\standards\SixLabors.ruleset
- SixLabors.ImageSharp
-
-
-
- true
-
-
-
-
- TextTemplatingFileGenerator
- Block8x8F.Generated.cs
-
-
- TextTemplatingFileGenerator
- GenericBlock8x8.Generated.cs
-
-
- TextTemplatingFileGenerator
- Block8x8F.Generated.cs
-
-
- TextTemplatingFileGenerator
- PixelOperations{TPixel}.Generated.cs
-
-
- TextTemplatingFileGenerator
- Argb32.PixelOperations.Generated.cs
-
-
- TextTemplatingFileGenerator
- Bgr24.PixelOperations.Generated.cs
-
-
- TextTemplatingFileGenerator
- Bgra32.PixelOperations.Generated.cs
-
-
- TextTemplatingFileGenerator
- Gray8.PixelOperations.Generated.cs
-
-
- TextTemplatingFileGenerator
- Gray16.PixelOperations.Generated.cs
-
-
- TextTemplatingFileGenerator
- Rgb24.PixelOperations.Generated.cs
-
-
- TextTemplatingFileGenerator
- Rgba32.PixelOperations.Generated.cs
-
-
- TextTemplatingFileGenerator
- Rgb48.PixelOperations.Generated.cs
-
-
- TextTemplatingFileGenerator
- Rgba64.PixelOperations.Generated.cs
-
-
- PorterDuffFunctions.Generated.cs
- TextTemplatingFileGenerator
-
-
- DefaultPixelBlenders.Generated.cs
- TextTemplatingFileGenerator
-
+
@@ -203,6 +98,87 @@
-
+
+
+
+
+
+ TextTemplatingFileGenerator
+ Block8x8F.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ GenericBlock8x8.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Block8x8F.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ PixelOperations{TPixel}.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Argb32.PixelOperations.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Bgr24.PixelOperations.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Bgra32.PixelOperations.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Gray8.PixelOperations.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Gray16.PixelOperations.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Rgb24.PixelOperations.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Rgba32.PixelOperations.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Rgb48.PixelOperations.Generated.cs
+
+
+ TextTemplatingFileGenerator
+ Rgba64.PixelOperations.Generated.cs
+
+
+ PorterDuffFunctions.Generated.cs
+ TextTemplatingFileGenerator
+
+
+ DefaultPixelBlenders.Generated.cs
+ TextTemplatingFileGenerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
+
+
+
diff --git a/src/ImageSharp/Properties/AssemblyInfo.cs b/src/ImageSharp/Properties/AssemblyInfo.cs
index f4459887f0..2862b45851 100644
--- a/src/ImageSharp/Properties/AssemblyInfo.cs
+++ b/src/ImageSharp/Properties/AssemblyInfo.cs
@@ -3,12 +3,9 @@
using System.Runtime.CompilerServices;
-// Ensure the other projects can see the internal helpers
-[assembly: InternalsVisibleTo("SixLabors.ImageSharp.Drawing")]
-
// Redundant suppressing of SA1413 for Rider.
[assembly:
System.Diagnostics.CodeAnalysis.SuppressMessage(
"StyleCop.CSharp.MaintainabilityRules",
"SA1413:UseTrailingCommasInMultiLineInitializers",
- Justification = "Follows SixLabors.ruleset")]
\ No newline at end of file
+ Justification = "Follows SixLabors.ruleset")]
diff --git a/src/Shared/AssemblyInfo.Common.cs b/src/Shared/AssemblyInfo.Common.cs
deleted file mode 100644
index 82e1dac6c4..0000000000
--- a/src/Shared/AssemblyInfo.Common.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) Six Labors and contributors.
-// Licensed under the Apache License, Version 2.0.
-
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-
-// Ensure the internals can be built and tested.
-[assembly: InternalsVisibleTo("SixLabors.ImageSharp.Drawing")]
-[assembly: InternalsVisibleTo("ImageSharp.Benchmarks")]
-[assembly: InternalsVisibleTo("SixLabors.ImageSharp.Tests")]
-[assembly: InternalsVisibleTo("SixLabors.ImageSharp.Sandbox46")]
-
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKeyToken=null")]
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
new file mode 100644
index 0000000000..97bd9b6e7c
--- /dev/null
+++ b/tests/Directory.Build.props
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileDirectory)..\Directory.Build.props
+ tests
+
+
+
+ CS0618;$(NoWarn)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/Directory.Build.targets b/tests/Directory.Build.targets
new file mode 100644
index 0000000000..f8a4936e23
--- /dev/null
+++ b/tests/Directory.Build.targets
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileDirectory)..\Directory.Build.targets
+
+
+
+
+
diff --git a/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj b/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj
index 2a5408da17..1e951f5d0e 100644
--- a/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj
+++ b/tests/ImageSharp.Benchmarks/ImageSharp.Benchmarks.csproj
@@ -1,29 +1,37 @@
-
+
+
+
-
- netcoreapp2.1
+ ImageSharp.Benchmarks
Exe
- True
SixLabors.ImageSharp.Benchmarks
- ImageSharp.Benchmarks
- 7.3
+ netcoreapp2.1;net472
-
+
+
win7-x64
false
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
\ No newline at end of file
+
+
diff --git a/tests/ImageSharp.Sandbox46/ImageSharp.Sandbox46.csproj b/tests/ImageSharp.Sandbox46/ImageSharp.Sandbox46.csproj
index 6569dc002e..fc94668e11 100644
--- a/tests/ImageSharp.Sandbox46/ImageSharp.Sandbox46.csproj
+++ b/tests/ImageSharp.Sandbox46/ImageSharp.Sandbox46.csproj
@@ -1,30 +1,28 @@
-
+
+
+
- Exe
- net472
- win7-x64
- True
- false
SixLabors.ImageSharp.Sandbox46
A cross-platform library for processing of image files written in C#
- Copyright © James Jackson-South and contributors.
- James Jackson-South and contributors
- James Jackson-South
+ Exe
+ false
SixLabors.ImageSharp.Sandbox46
- 7.3
+ win7-x64
+ net472
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
-
\ No newline at end of file
+
+
diff --git a/tests/ImageSharp.Sandbox46/Properties/AssemblyInfo.cs b/tests/ImageSharp.Sandbox46/Properties/AssemblyInfo.cs
deleted file mode 100644
index a10fc12fe7..0000000000
--- a/tests/ImageSharp.Sandbox46/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// 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.
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("96188137-5fa6-4924-ab6e-4eff79c6e0bb")]
diff --git a/tests/ImageSharp.Tests/ImageSharp.Tests.csproj b/tests/ImageSharp.Tests/ImageSharp.Tests.csproj
index 0b727f30ce..406719ab4f 100644
--- a/tests/ImageSharp.Tests/ImageSharp.Tests.csproj
+++ b/tests/ImageSharp.Tests/ImageSharp.Tests.csproj
@@ -1,48 +1,24 @@
-
+
+
+
- netcoreapp2.1;net462;net472
- True
- latest
- full
- portable
- True
- SixLabors.ImageSharp.Tests
SixLabors.ImageSharp.Tests
AnyCPU;x64;x86
+ SixLabors.ImageSharp.Tests
+ netcoreapp2.1;net462;net472
-
- false
-
-
-
- false
-
-
-
- false
-
-
+
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
PreserveNewest
@@ -54,4 +30,11 @@
PreserveNewest
+
+
+
+
+
+
+