diff --git a/src/ImageSharp/Image.FromBytes.cs b/src/ImageSharp/Image.FromBytes.cs
index f1196ac97..06b05fe3c 100644
--- a/src/ImageSharp/Image.FromBytes.cs
+++ b/src/ImageSharp/Image.FromBytes.cs
@@ -26,14 +26,15 @@ namespace SixLabors.ImageSharp
///
/// By reading the header on the provided byte array this calculates the images format.
///
- /// The configuration.
+ /// The configuration.
/// The byte array containing encoded image data to read the header from.
/// The mime type or null if none found.
- public static IImageFormat DetectFormat(Configuration config, byte[] data)
+ public static IImageFormat DetectFormat(Configuration configuration, byte[] data)
{
- using (var stream = new MemoryStream(data))
+ Guard.NotNull(configuration, nameof(configuration));
+ using (var stream = new MemoryStream(data, 0, data.Length, false, true))
{
- return DetectFormat(config, stream);
+ return DetectFormat(configuration, stream);
}
}
@@ -61,19 +62,19 @@ namespace SixLabors.ImageSharp
///
/// Reads the raw image information from the specified stream without fully decoding it.
///
- /// The configuration.
+ /// The configuration.
/// The byte array containing encoded image data to read the header from.
/// The format type of the decoded image.
/// Thrown if the stream is not readable.
///
/// The or null if suitable info detector is not found.
///
- public static IImageInfo Identify(Configuration config, byte[] data, out IImageFormat format)
+ public static IImageInfo Identify(Configuration configuration, byte[] data, out IImageFormat format)
{
- config ??= Configuration.Default;
- using (var stream = new MemoryStream(data))
+ Guard.NotNull(configuration, nameof(configuration));
+ using (var stream = new MemoryStream(data, 0, data.Length, false, true))
{
- return Identify(config, stream, out format);
+ return Identify(configuration, stream, out format);
}
}
@@ -108,33 +109,33 @@ namespace SixLabors.ImageSharp
///
/// Load a new instance of from the given encoded byte array.
///
- /// The configuration options.
+ /// The configuration options.
/// The byte array containing encoded image data.
/// The pixel format.
/// A new .
- public static Image Load(Configuration config, byte[] data)
+ public static Image Load(Configuration configuration, byte[] data)
where TPixel : unmanaged, IPixel
{
using (var stream = new MemoryStream(data, 0, data.Length, false, true))
{
- return Load(config, stream);
+ return Load(configuration, stream);
}
}
///
/// Load a new instance of from the given encoded byte array.
///
- /// The configuration options.
+ /// The configuration options.
/// The byte array containing encoded image data.
/// The of the decoded image.
/// The pixel format.
/// A new .
- public static Image Load(Configuration config, byte[] data, out IImageFormat format)
+ public static Image Load(Configuration configuration, byte[] data, out IImageFormat format)
where TPixel : unmanaged, IPixel
{
using (var stream = new MemoryStream(data, 0, data.Length, false, true))
{
- return Load(config, stream, out format);
+ return Load(configuration, stream, out format);
}
}
@@ -157,17 +158,17 @@ namespace SixLabors.ImageSharp
///
/// Load a new instance of from the given encoded byte array.
///
- /// The Configuration.
+ /// The Configuration.
/// The byte array containing encoded image data.
/// The decoder.
/// The pixel format.
/// A new .
- public static Image Load(Configuration config, byte[] data, IImageDecoder decoder)
+ public static Image Load(Configuration configuration, byte[] data, IImageDecoder decoder)
where TPixel : unmanaged, IPixel
{
using (var stream = new MemoryStream(data, 0, data.Length, false, true))
{
- return Load(config, stream, decoder);
+ return Load(configuration, stream, decoder);
}
}
@@ -184,18 +185,18 @@ namespace SixLabors.ImageSharp
///
/// By reading the header on the provided byte array this calculates the images format.
///
- /// The configuration.
+ /// The configuration.
/// The byte array containing encoded image data to read the header from.
/// The mime type or null if none found.
- public static IImageFormat DetectFormat(Configuration config, ReadOnlySpan data)
+ public static IImageFormat DetectFormat(Configuration configuration, ReadOnlySpan data)
{
- int maxHeaderSize = config.MaxHeaderSize;
+ int maxHeaderSize = configuration.MaxHeaderSize;
if (maxHeaderSize <= 0)
{
return null;
}
- foreach (IImageFormatDetector detector in config.ImageFormatsManager.FormatDetectors)
+ foreach (IImageFormatDetector detector in configuration.ImageFormatsManager.FormatDetectors)
{
IImageFormat f = detector.DetectFormat(data);
@@ -243,18 +244,18 @@ namespace SixLabors.ImageSharp
///
/// Load a new instance of from the given encoded byte span.
///
- /// The configuration options.
+ /// The configuration options.
/// The byte span containing encoded image data.
/// The pixel format.
/// A new .
- public static unsafe Image Load(Configuration config, ReadOnlySpan data)
+ public static unsafe Image Load(Configuration configuration, ReadOnlySpan data)
where TPixel : unmanaged, IPixel
{
fixed (byte* ptr = &data.GetPinnableReference())
{
using (var stream = new UnmanagedMemoryStream(ptr, data.Length))
{
- return Load(config, stream);
+ return Load(configuration, stream);
}
}
}
@@ -262,13 +263,13 @@ namespace SixLabors.ImageSharp
///
/// Load a new instance of from the given encoded byte span.
///
- /// The Configuration.
+ /// The Configuration.
/// The byte span containing image data.
/// The decoder.
/// The pixel format.
/// A new .
public static unsafe Image Load(
- Configuration config,
+ Configuration configuration,
ReadOnlySpan data,
IImageDecoder decoder)
where TPixel : unmanaged, IPixel
@@ -277,7 +278,7 @@ namespace SixLabors.ImageSharp
{
using (var stream = new UnmanagedMemoryStream(ptr, data.Length))
{
- return Load(config, stream, decoder);
+ return Load(configuration, stream, decoder);
}
}
}
@@ -285,13 +286,13 @@ namespace SixLabors.ImageSharp
///
/// Load a new instance of from the given encoded byte span.
///
- /// The configuration options.
+ /// The configuration options.
/// The byte span containing image data.
/// The of the decoded image.
/// The pixel format.
/// A new .
public static unsafe Image Load(
- Configuration config,
+ Configuration configuration,
ReadOnlySpan data,
out IImageFormat format)
where TPixel : unmanaged, IPixel
@@ -300,7 +301,7 @@ namespace SixLabors.ImageSharp
{
using (var stream = new UnmanagedMemoryStream(ptr, data.Length))
{
- return Load(config, stream, out format);
+ return Load(configuration, stream, out format);
}
}
}
@@ -325,38 +326,38 @@ namespace SixLabors.ImageSharp
///
/// Load a new instance of from the given encoded byte array.
///
- /// The config for the decoder.
+ /// The configuration for the decoder.
/// The byte array containing encoded image data.
/// The .
- public static Image Load(Configuration config, byte[] data) => Load(config, data, out _);
+ public static Image Load(Configuration configuration, byte[] data) => Load(configuration, data, out _);
///
/// Load a new instance of from the given encoded byte array.
///
- /// The config for the decoder.
+ /// The configuration for the decoder.
/// The byte array containing image data.
/// The decoder.
/// The .
- public static Image Load(Configuration config, byte[] data, IImageDecoder decoder)
+ public static Image Load(Configuration configuration, byte[] data, IImageDecoder decoder)
{
using (var stream = new MemoryStream(data, 0, data.Length, false, true))
{
- return Load(config, stream, decoder);
+ return Load(configuration, stream, decoder);
}
}
///
/// Load a new instance of from the given encoded byte array.
///
- /// The config for the decoder.
+ /// The configuration for the decoder.
/// The byte array containing image data.
/// The mime type of the decoded image.
/// The .
- public static Image Load(Configuration config, byte[] data, out IImageFormat format)
+ public static Image Load(Configuration configuration, byte[] data, out IImageFormat format)
{
using (var stream = new MemoryStream(data, 0, data.Length, false, true))
{
- return Load(config, stream, out format);
+ return Load(configuration, stream, out format);
}
}
@@ -388,20 +389,20 @@ namespace SixLabors.ImageSharp
///
/// Decodes a new instance of from the given encoded byte span.
///
- /// The configuration options.
+ /// The configuration options.
/// The byte span containing image data.
/// The .
- public static Image Load(Configuration config, ReadOnlySpan data) => Load(config, data, out _);
+ public static Image Load(Configuration configuration, ReadOnlySpan data) => Load(configuration, data, out _);
///
/// Load a new instance of from the given encoded byte span.
///
- /// The Configuration.
+ /// The Configuration.
/// The byte span containing image data.
/// The decoder.
/// The .
public static unsafe Image Load(
- Configuration config,
+ Configuration configuration,
ReadOnlySpan data,
IImageDecoder decoder)
{
@@ -409,7 +410,7 @@ namespace SixLabors.ImageSharp
{
using (var stream = new UnmanagedMemoryStream(ptr, data.Length))
{
- return Load(config, stream, decoder);
+ return Load(configuration, stream, decoder);
}
}
}
@@ -417,12 +418,12 @@ namespace SixLabors.ImageSharp
///
/// Load a new instance of from the given encoded byte span.
///
- /// The configuration options.
+ /// The configuration options.
/// The byte span containing image data.
/// The of the decoded image.>
/// The .
public static unsafe Image Load(
- Configuration config,
+ Configuration configuration,
ReadOnlySpan data,
out IImageFormat format)
{
@@ -430,7 +431,7 @@ namespace SixLabors.ImageSharp
{
using (var stream = new UnmanagedMemoryStream(ptr, data.Length))
{
- return Load(config, stream, out format);
+ return Load(configuration, stream, out format);
}
}
}
diff --git a/src/ImageSharp/Image.FromFile.cs b/src/ImageSharp/Image.FromFile.cs
index bb26e4142..1a9fa1546 100644
--- a/src/ImageSharp/Image.FromFile.cs
+++ b/src/ImageSharp/Image.FromFile.cs
@@ -26,15 +26,15 @@ namespace SixLabors.ImageSharp
///
/// By reading the header on the provided file this calculates the images mime type.
///
- /// The configuration.
+ /// The configuration.
/// The image file to open and to read the header from.
/// The mime type or null if none found.
- public static IImageFormat DetectFormat(Configuration config, string filePath)
+ public static IImageFormat DetectFormat(Configuration configuration, string filePath)
{
- config ??= Configuration.Default;
- using (Stream file = config.FileSystem.OpenRead(filePath))
+ Guard.NotNull(configuration, nameof(configuration));
+ using (Stream file = configuration.FileSystem.OpenRead(filePath))
{
- return DetectFormat(config, file);
+ return DetectFormat(configuration, file);
}
}
@@ -62,19 +62,19 @@ namespace SixLabors.ImageSharp
///
/// Reads the raw image information from the specified stream without fully decoding it.
///
- /// The configuration.
+ /// The configuration.
/// The image file to open and to read the header from.
/// The format type of the decoded image.
/// Thrown if the stream is not readable.
///
/// The or null if suitable info detector is not found.
///
- public static IImageInfo Identify(Configuration config, string filePath, out IImageFormat format)
+ public static IImageInfo Identify(Configuration configuration, string filePath, out IImageFormat format)
{
- config ??= Configuration.Default;
- using (Stream file = config.FileSystem.OpenRead(filePath))
+ Guard.NotNull(configuration, nameof(configuration));
+ using (Stream file = configuration.FileSystem.OpenRead(filePath))
{
- return Identify(config, file, out format);
+ return Identify(configuration, file, out format);
}
}
@@ -102,29 +102,30 @@ namespace SixLabors.ImageSharp
///
/// Create a new instance of the class from the given file.
///
- /// The config for the decoder.
+ /// The configuration for the decoder.
/// The file path to the image.
///
/// Thrown if the stream is not readable nor seekable.
///
/// The .
- public static Image Load(Configuration config, string path) => Load(config, path, out _);
+ public static Image Load(Configuration configuration, string path) => Load(configuration, path, out _);
///
/// Create a new instance of the class from the given file.
///
- /// The Configuration.
+ /// The Configuration.
/// The file path to the image.
/// The decoder.
///
/// Thrown if the stream is not readable nor seekable.
///
/// The .
- public static Image Load(Configuration config, string path, IImageDecoder decoder)
+ public static Image Load(Configuration configuration, string path, IImageDecoder decoder)
{
- using (Stream stream = config.FileSystem.OpenRead(path))
+ Guard.NotNull(configuration, nameof(configuration));
+ using (Stream stream = configuration.FileSystem.OpenRead(path))
{
- return Load(config, stream, decoder);
+ return Load(configuration, stream, decoder);
}
}
@@ -173,26 +174,27 @@ namespace SixLabors.ImageSharp
///
/// Create a new instance of the class from the given file.
///
- /// The configuration options.
+ /// The configuration options.
/// The file path to the image.
///
/// Thrown if the stream is not readable nor seekable.
///
/// The pixel format.
/// A new .
- public static Image Load(Configuration config, string path)
+ public static Image Load(Configuration configuration, string path)
where TPixel : unmanaged, IPixel
{
- using (Stream stream = config.FileSystem.OpenRead(path))
+ Guard.NotNull(configuration, nameof(configuration));
+ using (Stream stream = configuration.FileSystem.OpenRead(path))
{
- return Load(config, stream);
+ return Load(configuration, stream);
}
}
///
/// Create a new instance of the class from the given file.
///
- /// The configuration options.
+ /// The configuration options.
/// The file path to the image.
/// The mime type of the decoded image.
///
@@ -200,12 +202,13 @@ namespace SixLabors.ImageSharp
///
/// The pixel format.
/// A new .
- public static Image Load(Configuration config, string path, out IImageFormat format)
+ public static Image Load(Configuration configuration, string path, out IImageFormat format)
where TPixel : unmanaged, IPixel
{
- using (Stream stream = config.FileSystem.OpenRead(path))
+ Guard.NotNull(configuration, nameof(configuration));
+ using (Stream stream = configuration.FileSystem.OpenRead(path))
{
- return Load(config, stream, out format);
+ return Load(configuration, stream, out format);
}
}
@@ -213,18 +216,19 @@ namespace SixLabors.ImageSharp
/// Create a new instance of the class from the given file.
/// The pixel type is selected by the decoder.
///
- /// The configuration options.
+ /// The configuration options.
/// The file path to the image.
/// The mime type of the decoded image.
///
/// Thrown if the stream is not readable nor seekable.
///
/// A new .
- public static Image Load(Configuration config, string path, out IImageFormat format)
+ public static Image Load(Configuration configuration, string path, out IImageFormat format)
{
- using (Stream stream = config.FileSystem.OpenRead(path))
+ Guard.NotNull(configuration, nameof(configuration));
+ using (Stream stream = configuration.FileSystem.OpenRead(path))
{
- return Load(config, stream, out format);
+ return Load(configuration, stream, out format);
}
}
@@ -247,7 +251,7 @@ namespace SixLabors.ImageSharp
///
/// Create a new instance of the class from the given file.
///
- /// The Configuration.
+ /// The Configuration.
/// The file path to the image.
/// The decoder.
///
@@ -255,12 +259,13 @@ namespace SixLabors.ImageSharp
///
/// The pixel format.
/// A new .
- public static Image Load(Configuration config, string path, IImageDecoder decoder)
+ public static Image Load(Configuration configuration, string path, IImageDecoder decoder)
where TPixel : unmanaged, IPixel
{
- using (Stream stream = config.FileSystem.OpenRead(path))
+ Guard.NotNull(configuration, nameof(configuration));
+ using (Stream stream = configuration.FileSystem.OpenRead(path))
{
- return Load(config, stream, decoder);
+ return Load(configuration, stream, decoder);
}
}
}
diff --git a/src/ImageSharp/Image.FromStream.cs b/src/ImageSharp/Image.FromStream.cs
index 95a71903a..52d71409b 100644
--- a/src/ImageSharp/Image.FromStream.cs
+++ b/src/ImageSharp/Image.FromStream.cs
@@ -26,12 +26,12 @@ namespace SixLabors.ImageSharp
///
/// By reading the header on the provided stream this calculates the images format type.
///
- /// The configuration.
+ /// The configuration.
/// The image stream to read the header from.
/// Thrown if the stream is not readable.
/// The format type or null if none found.
- public static IImageFormat DetectFormat(Configuration config, Stream stream)
- => WithSeekableStream(config, stream, s => InternalDetectFormat(s, config));
+ public static IImageFormat DetectFormat(Configuration configuration, Stream stream)
+ => WithSeekableStream(configuration, stream, s => InternalDetectFormat(s, configuration));
///
/// Reads the raw image information from the specified stream without fully decoding it.
@@ -57,16 +57,16 @@ namespace SixLabors.ImageSharp
///
/// Reads the raw image information from the specified stream without fully decoding it.
///
- /// The configuration.
+ /// The configuration.
/// The image stream to read the information from.
/// The format type of the decoded image.
/// Thrown if the stream is not readable.
///
/// The or null if suitable info detector is not found.
///
- public static IImageInfo Identify(Configuration config, Stream stream, out IImageFormat format)
+ public static IImageInfo Identify(Configuration configuration, Stream stream, out IImageFormat format)
{
- (IImageInfo info, IImageFormat format) data = WithSeekableStream(config, stream, s => InternalIdentity(s, config ?? Configuration.Default));
+ (IImageInfo info, IImageFormat format) data = WithSeekableStream(configuration, stream, s => InternalIdentity(s, configuration ?? Configuration.Default));
format = data.format;
return data.info;
@@ -108,24 +108,24 @@ namespace SixLabors.ImageSharp
/// Decode a new instance of the class from the given stream.
/// The pixel format is selected by the decoder.
///
- /// The config for the decoder.
+ /// The configuration for the decoder.
/// The stream containing image information.
/// The decoder.
/// Thrown if the stream is not readable.
/// Image cannot be loaded.
/// A new .>
- public static Image Load(Configuration config, Stream stream, IImageDecoder decoder) =>
- WithSeekableStream(config, stream, s => decoder.Decode(config, s));
+ public static Image Load(Configuration configuration, Stream stream, IImageDecoder decoder) =>
+ WithSeekableStream(configuration, stream, s => decoder.Decode(configuration, s));
///
/// Decode a new instance of the class from the given stream.
///
- /// The config for the decoder.
+ /// The configuration for the decoder.
/// The stream containing image information.
/// Thrown if the stream is not readable.
/// Image cannot be loaded.
/// A new .>
- public static Image Load(Configuration config, Stream stream) => Load(config, stream, out _);
+ public static Image Load(Configuration configuration, Stream stream) => Load(configuration, stream, out _);
///
/// Create a new instance of the class from the given stream.
@@ -137,7 +137,7 @@ namespace SixLabors.ImageSharp
/// A new .>
public static Image Load(Stream stream)
where TPixel : unmanaged, IPixel
- => Load(null, stream);
+ => Load(Configuration.Default, stream);
///
/// Create a new instance of the class from the given stream.
@@ -150,7 +150,7 @@ namespace SixLabors.ImageSharp
/// A new .>
public static Image Load(Stream stream, out IImageFormat format)
where TPixel : unmanaged, IPixel
- => Load(null, stream, out format);
+ => Load(Configuration.Default, stream, out format);
///
/// Create a new instance of the class from the given stream.
@@ -168,45 +168,45 @@ namespace SixLabors.ImageSharp
///
/// Create a new instance of the class from the given stream.
///
- /// The Configuration.
+ /// The Configuration.
/// The stream containing image information.
/// The decoder.
/// Thrown if the stream is not readable.
/// Image cannot be loaded.
/// The pixel format.
/// A new .>
- public static Image Load(Configuration config, Stream stream, IImageDecoder decoder)
+ public static Image Load(Configuration configuration, Stream stream, IImageDecoder decoder)
where TPixel : unmanaged, IPixel
- => WithSeekableStream(config, stream, s => decoder.Decode(config, s));
+ => WithSeekableStream(configuration, stream, s => decoder.Decode(configuration, s));
///
/// Create a new instance of the class from the given stream.
///
- /// The configuration options.
+ /// The configuration options.
/// The stream containing image information.
/// Thrown if the stream is not readable.
/// Image cannot be loaded.
/// The pixel format.
/// A new .>
- public static Image Load(Configuration config, Stream stream)
+ public static Image Load(Configuration configuration, Stream stream)
where TPixel : unmanaged, IPixel
- => Load(config, stream, out IImageFormat _);
+ => Load(configuration, stream, out IImageFormat _);
///
/// Create a new instance of the class from the given stream.
///
- /// The configuration options.
+ /// The configuration options.
/// The stream containing image information.
/// The format type of the decoded image.
/// Thrown if the stream is not readable.
/// Image cannot be loaded.
/// The pixel format.
- /// A new .>
- public static Image Load(Configuration config, Stream stream, out IImageFormat format)
+ /// A new .
+ public static Image Load(Configuration configuration, Stream stream, out IImageFormat format)
where TPixel : unmanaged, IPixel
{
- config = config ?? Configuration.Default;
- (Image img, IImageFormat format) data = WithSeekableStream(config, stream, s => Decode(s, config));
+ Guard.NotNull(configuration, nameof(configuration));
+ (Image img, IImageFormat format) data = WithSeekableStream(configuration, stream, s => Decode(s, configuration));
format = data.format;
@@ -218,7 +218,7 @@ namespace SixLabors.ImageSharp
var sb = new StringBuilder();
sb.AppendLine("Image cannot be loaded. Available decoders:");
- foreach (KeyValuePair val in config.ImageFormatsManager.ImageDecoders)
+ foreach (KeyValuePair val in configuration.ImageFormatsManager.ImageDecoders)
{
sb.AppendLine($" - {val.Key.Name} : {val.Value.GetType().Name}");
}
@@ -230,16 +230,16 @@ namespace SixLabors.ImageSharp
/// Decode a new instance of the class from the given stream.
/// The pixel format is selected by the decoder.
///
- /// The configuration options.
+ /// The configuration options.
/// The stream containing image information.
/// The format type of the decoded image.
/// Thrown if the stream is not readable.
/// Image cannot be loaded.
/// A new .
- public static Image Load(Configuration config, Stream stream, out IImageFormat format)
+ public static Image Load(Configuration configuration, Stream stream, out IImageFormat format)
{
- config = config ?? Configuration.Default;
- (Image img, IImageFormat format) data = WithSeekableStream(config, stream, s => Decode(s, config));
+ Guard.NotNull(configuration, nameof(configuration));
+ (Image img, IImageFormat format) data = WithSeekableStream(configuration, stream, s => Decode(s, configuration));
format = data.format;
@@ -251,7 +251,7 @@ namespace SixLabors.ImageSharp
var sb = new StringBuilder();
sb.AppendLine("Image cannot be loaded. Available decoders:");
- foreach (KeyValuePair val in config.ImageFormatsManager.ImageDecoders)
+ foreach (KeyValuePair val in configuration.ImageFormatsManager.ImageDecoders)
{
sb.AppendLine($" - {val.Key.Name} : {val.Value.GetType().Name}");
}
@@ -259,7 +259,7 @@ namespace SixLabors.ImageSharp
throw new UnknownImageFormatException(sb.ToString());
}
- private static T WithSeekableStream(Configuration config, Stream stream, Func action)
+ private static T WithSeekableStream(Configuration configuration, Stream stream, Func action)
{
if (!stream.CanRead)
{
@@ -268,7 +268,7 @@ namespace SixLabors.ImageSharp
if (stream.CanSeek)
{
- if (config.ReadOrigin == ReadOrigin.Begin)
+ if (configuration.ReadOrigin == ReadOrigin.Begin)
{
stream.Position = 0;
}