From 9d0637a7c2de6c77710d69ab38ed81e81e4e656d Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Thu, 16 Jan 2025 21:02:28 +0300 Subject: [PATCH 01/11] Refactor throw helper using CallerArgumentExpression. --- src/Magick.NET.Core/Magick.NET.Core.csproj | 1 + .../Profiles/8Bim/EightBimProfile.cs | 2 +- .../Profiles/8Bim/EightBimValue.cs | 2 +- src/Magick.NET.Core/Profiles/EndianReader.cs | 2 +- .../Profiles/Exif/ExifProfile.cs | 2 +- src/Magick.NET.Core/Profiles/ImageProfile.cs | 12 +- .../Profiles/Iptc/IptcValue.cs | 2 +- .../Profiles/Xmp/XmpProfile.cs | 6 +- src/Magick.NET.Core/Types/Density.cs | 6 +- src/Magick.NET.Core/Types/PointD.cs | 4 +- .../IMagickImageCollectionExtensions.cs | 6 +- .../IMagickImageExtentions.cs | 10 +- .../IMagickImageFactoryExtensions.cs | 2 +- .../Magick.NET.SystemDrawing.csproj | 1 + .../IMagickImageExtentions.cs | 2 +- .../Magick.NET.SystemWindowsMedia.csproj | 1 + src/Magick.NET/Colors/ColorBase.cs | 2 +- src/Magick.NET/Colors/ColorCMYK.cs | 2 +- src/Magick.NET/Colors/ColorGray.cs | 2 +- src/Magick.NET/Colors/MagickColor.cs | 4 +- src/Magick.NET/Defines/MagickDefine.cs | 4 +- .../Coordinates/DrawableCoordinates.cs | 2 +- src/Magick.NET/Drawing/DrawableBorderColor.cs | 2 +- src/Magick.NET/Drawing/DrawableClipPath.cs | 2 +- src/Magick.NET/Drawing/DrawableComposite.cs | 2 +- src/Magick.NET/Drawing/DrawableFillColor.cs | 2 +- src/Magick.NET/Drawing/DrawableFont.cs | 2 +- src/Magick.NET/Drawing/DrawableStrokeColor.cs | 2 +- src/Magick.NET/Drawing/DrawableText.cs | 2 +- .../Drawing/DrawableTextEncoding.cs | 2 +- .../Drawing/DrawableTextUnderColor.cs | 2 +- src/Magick.NET/Drawing/Drawables.cs | 2 +- src/Magick.NET/Formats/Pdf/PdfInfo.cs | 4 +- .../Formats/Psd/PsdAdditionalInfo.cs | 2 +- src/Magick.NET/Helpers/PercentageHelper.cs | 4 +- .../ImageOptimizers/GifOptimizer.cs | 2 +- .../ImageOptimizers/IcoOptimizer.cs | 2 +- .../ImageOptimizers/ImageOptimizer.cs | 23 +- .../ImageOptimizers/ImageOptimizerHelper.cs | 2 +- .../ImageOptimizers/JpegOptimizer.cs | 4 +- .../ImageOptimizers/PngOptimizer.cs | 2 +- src/Magick.NET/Magick.NET.csproj | 1 + src/Magick.NET/MagickFormatInfo.cs | 4 +- src/Magick.NET/MagickImage.CloneMutator.cs | 62 ++-- src/Magick.NET/MagickImage.cs | 292 +++++++++--------- src/Magick.NET/MagickImageCollection.cs | 68 ++-- src/Magick.NET/MagickImageInfo.cs | 2 +- src/Magick.NET/MagickNET.cs | 12 +- src/Magick.NET/Matrices/ConvolveMatrix.cs | 2 +- src/Magick.NET/Matrices/DoubleMatrix.cs | 18 +- src/Magick.NET/Matrices/MagickColorMatrix.cs | 2 +- src/Magick.NET/Pixels/Pixel.cs | 4 +- src/Magick.NET/Pixels/SafePixelCollection.cs | 40 +-- src/Magick.NET/ResourceLimits.cs | 2 +- src/Magick.NET/Settings/MagickSettings.cs | 20 +- src/Magick.NET/Statistics/ChannelMoments.cs | 2 +- .../Statistics/ChannelPerceptualHash.cs | 4 +- src/Magick.NET/Statistics/PerceptualHash.cs | 8 +- src/Magick.NET/Types/MagickGeometry.cs | 10 +- src/Magick.NET/Types/MagickRectangle.cs | 2 +- src/Magick.NET/Types/SparseColorArg.cs | 2 +- .../Extensions/IExifProfileExtensions.cs | 2 +- src/Magick.NET/net8.0/Helpers/Throw.cs | 5 +- src/Magick.NET/net8.0/MagickFormatInfo.cs | 2 +- src/Magick.NET/net8.0/MagickImage.cs | 44 +-- .../net8.0/MagickImageCollection.cs | 10 +- .../net8.0/Pixels/SafePixelCollection.cs | 10 +- src/Shared/Bytes.cs | 6 +- .../CallerArgumentExpressionAttribute.cs | 18 ++ src/Shared/FileHelper.cs | 2 +- src/Shared/Throw.cs | 50 +-- 71 files changed, 429 insertions(+), 419 deletions(-) create mode 100644 src/Shared/CallerArgumentExpressionAttribute.cs diff --git a/src/Magick.NET.Core/Magick.NET.Core.csproj b/src/Magick.NET.Core/Magick.NET.Core.csproj index 9707f7dfb3..8115652b94 100644 --- a/src/Magick.NET.Core/Magick.NET.Core.csproj +++ b/src/Magick.NET.Core/Magick.NET.Core.csproj @@ -21,6 +21,7 @@ + diff --git a/src/Magick.NET.Core/Profiles/8Bim/EightBimProfile.cs b/src/Magick.NET.Core/Profiles/8Bim/EightBimProfile.cs index 1dc628a2d9..34411dd3e2 100644 --- a/src/Magick.NET.Core/Profiles/8Bim/EightBimProfile.cs +++ b/src/Magick.NET.Core/Profiles/8Bim/EightBimProfile.cs @@ -59,7 +59,7 @@ public EightBimProfile(Stream stream) public EightBimProfile(IMagickImage image, byte[] data) : base("8bim", data) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); _width = image.Width; _height = image.Height; diff --git a/src/Magick.NET.Core/Profiles/8Bim/EightBimValue.cs b/src/Magick.NET.Core/Profiles/8Bim/EightBimValue.cs index e25f23caf2..80b5cd7c1c 100644 --- a/src/Magick.NET.Core/Profiles/8Bim/EightBimValue.cs +++ b/src/Magick.NET.Core/Profiles/8Bim/EightBimValue.cs @@ -100,7 +100,7 @@ public override string ToString() /// A string that represents the current value with the specified encoding. public string ToString(Encoding encoding) { - Throw.IfNull(nameof(encoding), encoding); + Throw.IfNull(encoding); return encoding.GetString(_data); } diff --git a/src/Magick.NET.Core/Profiles/EndianReader.cs b/src/Magick.NET.Core/Profiles/EndianReader.cs index 0b5c81ea16..40b0bea17d 100644 --- a/src/Magick.NET.Core/Profiles/EndianReader.cs +++ b/src/Magick.NET.Core/Profiles/EndianReader.cs @@ -11,7 +11,7 @@ internal sealed class EndianReader public EndianReader(byte[] data) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); _data = data; Index = 0; diff --git a/src/Magick.NET.Core/Profiles/Exif/ExifProfile.cs b/src/Magick.NET.Core/Profiles/Exif/ExifProfile.cs index e01d7d0cfc..bbff24f6f6 100644 --- a/src/Magick.NET.Core/Profiles/Exif/ExifProfile.cs +++ b/src/Magick.NET.Core/Profiles/Exif/ExifProfile.cs @@ -173,7 +173,7 @@ public void Rewrite() /// The data type of the tag. public void SetValue(ExifTag tag, TValueType value) { - Throw.IfNull(nameof(value), value); + Throw.IfNull(value); InitializeValues(); foreach (var exifValue in _data.Values) diff --git a/src/Magick.NET.Core/Profiles/ImageProfile.cs b/src/Magick.NET.Core/Profiles/ImageProfile.cs index 8992ec0433..64c727f3dc 100644 --- a/src/Magick.NET.Core/Profiles/ImageProfile.cs +++ b/src/Magick.NET.Core/Profiles/ImageProfile.cs @@ -20,8 +20,8 @@ public partial class ImageProfile : IImageProfile /// A byte array containing the profile. public ImageProfile(string name, byte[] data) { - Throw.IfNullOrEmpty(nameof(name), name); - Throw.IfNull(nameof(data), data); + Throw.IfNullOrEmpty(name); + Throw.IfNull(data); Name = name; _data = Copy(data); @@ -34,7 +34,7 @@ public ImageProfile(string name, byte[] data) /// A stream containing the profile. public ImageProfile(string name, Stream stream) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); Name = name; @@ -49,8 +49,8 @@ public ImageProfile(string name, Stream stream) /// The fully qualified name of the profile file, or the relative profile file name. public ImageProfile(string name, string fileName) { - Throw.IfNullOrEmpty(nameof(name), name); - Throw.IfNullOrEmpty(nameof(fileName), fileName); + Throw.IfNullOrEmpty(name); + Throw.IfNullOrEmpty(fileName); Name = name; @@ -64,7 +64,7 @@ public ImageProfile(string name, string fileName) /// The name of the profile. protected ImageProfile(string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); Name = name; } diff --git a/src/Magick.NET.Core/Profiles/Iptc/IptcValue.cs b/src/Magick.NET.Core/Profiles/Iptc/IptcValue.cs index 7ef03490f7..c27614ce2f 100644 --- a/src/Magick.NET.Core/Profiles/Iptc/IptcValue.cs +++ b/src/Magick.NET.Core/Profiles/Iptc/IptcValue.cs @@ -16,7 +16,7 @@ public sealed class IptcValue : IIptcValue internal IptcValue(IptcTag tag, byte[] value) { - Throw.IfNull(nameof(value), value); + Throw.IfNull(value); Tag = tag; _data = value; diff --git a/src/Magick.NET.Core/Profiles/Xmp/XmpProfile.cs b/src/Magick.NET.Core/Profiles/Xmp/XmpProfile.cs index 509734fd2a..1667c5c07f 100644 --- a/src/Magick.NET.Core/Profiles/Xmp/XmpProfile.cs +++ b/src/Magick.NET.Core/Profiles/Xmp/XmpProfile.cs @@ -31,7 +31,7 @@ public XmpProfile(byte[] data) public XmpProfile(IXPathNavigable document) : base("xmp") { - Throw.IfNull(nameof(document), document); + Throw.IfNull(document); var navigator = document.CreateNavigator(); if (navigator is not null) @@ -51,7 +51,7 @@ public XmpProfile(IXPathNavigable document) public XmpProfile(XDocument document) : base("xmp") { - Throw.IfNull(nameof(document), document); + Throw.IfNull(document); using var memStream = new MemoryStream(); using var writer = CreateXmlWriter(memStream); @@ -151,7 +151,7 @@ private static XmlWriter CreateXmlWriter(MemoryStream memStream) private static byte[] CheckTrailingNULL(byte[] data) { - Throw.IfNull(nameof(data), data); + Throw.IfNull(data); var length = data.Length; diff --git a/src/Magick.NET.Core/Types/Density.cs b/src/Magick.NET.Core/Types/Density.cs index 7938810396..678e52ef9e 100644 --- a/src/Magick.NET.Core/Types/Density.cs +++ b/src/Magick.NET.Core/Types/Density.cs @@ -163,10 +163,10 @@ private static string ToString(double x, double y, DensityUnit units) private void Initialize(string value) { - Throw.IfNullOrEmpty(nameof(value), value); + Throw.IfNullOrEmpty(value); var values = value.Split(' '); - Throw.IfTrue(nameof(value), values.Length > 2, "Invalid density specified."); + Throw.IfTrue(values.Length > 2, nameof(value), "Invalid density specified."); if (values.Length == 2) { @@ -179,7 +179,7 @@ private void Initialize(string value) } var xyValues = values[0].Split('x'); - Throw.IfTrue(nameof(value), xyValues.Length > 2, "Invalid density specified."); + Throw.IfTrue(xyValues.Length > 2, nameof(value), "Invalid density specified."); Throw.IfFalse(nameof(value), double.TryParse(xyValues[0], NumberStyles.Number, CultureInfo.InvariantCulture, out var x), "Invalid density specified."); diff --git a/src/Magick.NET.Core/Types/PointD.cs b/src/Magick.NET.Core/Types/PointD.cs index 0242c65e33..07affe1755 100644 --- a/src/Magick.NET.Core/Types/PointD.cs +++ b/src/Magick.NET.Core/Types/PointD.cs @@ -39,7 +39,7 @@ public PointD(double x, double y) public PointD(string value) : this() { - Throw.IfNullOrEmpty(nameof(value), value); + Throw.IfNullOrEmpty(value); Initialize(value); } @@ -108,7 +108,7 @@ public override string ToString() private void Initialize(string value) { var values = value.Split('x'); - Throw.IfTrue(nameof(value), values.Length > 2, "Invalid point specified."); + Throw.IfTrue(values.Length > 2, nameof(value), "Invalid point specified."); Throw.IfFalse(nameof(value), double.TryParse(values[0], NumberStyles.Number, CultureInfo.InvariantCulture, out var x), "Invalid point specified."); diff --git a/src/Magick.NET.SystemDrawing/IMagickImageCollectionExtensions.cs b/src/Magick.NET.SystemDrawing/IMagickImageCollectionExtensions.cs index 5afbcc7338..172a4e76b9 100644 --- a/src/Magick.NET.SystemDrawing/IMagickImageCollectionExtensions.cs +++ b/src/Magick.NET.SystemDrawing/IMagickImageCollectionExtensions.cs @@ -22,7 +22,7 @@ public static class IMagickImageCollectionExtensions public static Bitmap ToBitmap(this IMagickImageCollection self) where TQuantumType : struct, IConvertible { - Throw.IfNull(nameof(self), self); + Throw.IfNull(self); if (self.Count == 1) return self[0].ToBitmap(); @@ -41,8 +41,8 @@ public static Bitmap ToBitmap(this IMagickImageCollection(this IMagickImageCollection self, ImageFormat imageFormat) where TQuantumType : struct, IConvertible { - Throw.IfNull(nameof(self), self); - Throw.IfNull(nameof(imageFormat), imageFormat); + Throw.IfNull(self); + Throw.IfNull(imageFormat); var format = imageFormat.ToMagickFormat(); diff --git a/src/Magick.NET.SystemDrawing/IMagickImageExtentions.cs b/src/Magick.NET.SystemDrawing/IMagickImageExtentions.cs index 69a96bb1dc..0cd0782aa1 100644 --- a/src/Magick.NET.SystemDrawing/IMagickImageExtentions.cs +++ b/src/Magick.NET.SystemDrawing/IMagickImageExtentions.cs @@ -24,8 +24,8 @@ public static partial class IMagickImageExtentions public static void Read(this IMagickImage self, Bitmap bitmap) where TQuantumType : struct, IConvertible { - Throw.IfNull(nameof(self), self); - Throw.IfNull(nameof(bitmap), bitmap); + Throw.IfNull(self); + Throw.IfNull(bitmap); using var memStream = new MemoryStream(); if (IsSupportedImageFormat(bitmap.RawFormat)) @@ -84,7 +84,7 @@ public static Bitmap ToBitmapWithDensity(this IMagickImage(this IMagickImage self, bool withDensity) where TQuantumType : struct, IConvertible { - Throw.IfNull(nameof(self), self); + Throw.IfNull(self); var image = self; @@ -133,8 +133,8 @@ private static Bitmap ToBitmap(this IMagickImage sel private static Bitmap ToBitmap(IMagickImage self, ImageFormat imageFormat, bool withDensity) where TQuantumType : struct, IConvertible { - Throw.IfNull(nameof(self), self); - Throw.IfNull(nameof(imageFormat), imageFormat); + Throw.IfNull(self); + Throw.IfNull(imageFormat); var format = imageFormat.ToMagickFormat(); diff --git a/src/Magick.NET.SystemDrawing/IMagickImageFactoryExtensions.cs b/src/Magick.NET.SystemDrawing/IMagickImageFactoryExtensions.cs index 58f317c9e7..a6d407e230 100644 --- a/src/Magick.NET.SystemDrawing/IMagickImageFactoryExtensions.cs +++ b/src/Magick.NET.SystemDrawing/IMagickImageFactoryExtensions.cs @@ -22,7 +22,7 @@ public static class IMagickImageFactoryExtensions public static IMagickImage Create(this IMagickImageFactory self, Bitmap bitmap) where TQuantumType : struct, IConvertible { - Throw.IfNull(nameof(self), self); + Throw.IfNull(self); var image = self.Create(); image.Read(bitmap); diff --git a/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj b/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj index 15079e80ff..2193d39d08 100644 --- a/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj +++ b/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj @@ -26,6 +26,7 @@ + diff --git a/src/Magick.NET.SystemWindowsMedia/IMagickImageExtentions.cs b/src/Magick.NET.SystemWindowsMedia/IMagickImageExtentions.cs index 764a94e0da..5034a5756c 100644 --- a/src/Magick.NET.SystemWindowsMedia/IMagickImageExtentions.cs +++ b/src/Magick.NET.SystemWindowsMedia/IMagickImageExtentions.cs @@ -35,7 +35,7 @@ public static BitmapSource ToBitmapSourceWithDensity(this IMagickI private static BitmapSource ToBitmapSource(this IMagickImage self, bool useDensity) where TQuantumType : struct, IConvertible { - Throw.IfNull(nameof(self), self); + Throw.IfNull(self); var image = self; diff --git a/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj b/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj index 1db2baf57b..942d86efd0 100644 --- a/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj +++ b/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj @@ -19,6 +19,7 @@ + diff --git a/src/Magick.NET/Colors/ColorBase.cs b/src/Magick.NET/Colors/ColorBase.cs index d8e4264d6d..46c22398b7 100644 --- a/src/Magick.NET/Colors/ColorBase.cs +++ b/src/Magick.NET/Colors/ColorBase.cs @@ -26,7 +26,7 @@ public abstract class ColorBase : IEquatable, IComparableThe color to use. protected ColorBase(IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); Color = color; } diff --git a/src/Magick.NET/Colors/ColorCMYK.cs b/src/Magick.NET/Colors/ColorCMYK.cs index 5ccfba4a4d..3ccad3c4dc 100644 --- a/src/Magick.NET/Colors/ColorCMYK.cs +++ b/src/Magick.NET/Colors/ColorCMYK.cs @@ -163,7 +163,7 @@ public QuantumType Y private static IMagickColor CreateColor(string color) { - Throw.IfNullOrEmpty(nameof(color), color); + Throw.IfNullOrEmpty(color); if (color[0] == '#') { diff --git a/src/Magick.NET/Colors/ColorGray.cs b/src/Magick.NET/Colors/ColorGray.cs index 8eb70ad442..656a7b399d 100644 --- a/src/Magick.NET/Colors/ColorGray.cs +++ b/src/Magick.NET/Colors/ColorGray.cs @@ -27,7 +27,7 @@ public sealed class ColorGray : ColorBase public ColorGray(double shade) : base(new MagickColor(0, 0, 0)) { - Throw.IfTrue(nameof(shade), shade < 0.0 || shade > 1.0, "Invalid shade specified"); + Throw.IfTrue(shade < 0.0 || shade > 1.0, nameof(shade), "Invalid shade specified"); _shade = shade; } diff --git a/src/Magick.NET/Colors/MagickColor.cs b/src/Magick.NET/Colors/MagickColor.cs index 3d2d15b5df..acfc922db8 100644 --- a/src/Magick.NET/Colors/MagickColor.cs +++ b/src/Magick.NET/Colors/MagickColor.cs @@ -34,7 +34,7 @@ public MagickColor() /// The color to use. public MagickColor(IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); R = color.R; G = color.G; @@ -119,7 +119,7 @@ public MagickColor(QuantumType cyan, QuantumType magenta, QuantumType yellow, Qu /// For example: #F000, #FF000000, #FFFF000000000000. public MagickColor(string color) { - Throw.IfNullOrEmpty(nameof(color), color); + Throw.IfNullOrEmpty(color); if (color.Equals("transparent", StringComparison.OrdinalIgnoreCase)) { diff --git a/src/Magick.NET/Defines/MagickDefine.cs b/src/Magick.NET/Defines/MagickDefine.cs index 4a7983f908..ed581c3ba7 100644 --- a/src/Magick.NET/Defines/MagickDefine.cs +++ b/src/Magick.NET/Defines/MagickDefine.cs @@ -111,8 +111,8 @@ public MagickDefine(MagickFormat format, string name, long value) /// The value of the define. public MagickDefine(MagickFormat format, string name, string value) { - Throw.IfNullOrEmpty(nameof(name), name); - Throw.IfNullOrEmpty(nameof(value), value); + Throw.IfNullOrEmpty(name); + Throw.IfNullOrEmpty(value); Format = format; Name = name; diff --git a/src/Magick.NET/Drawing/Coordinates/DrawableCoordinates.cs b/src/Magick.NET/Drawing/Coordinates/DrawableCoordinates.cs index 3586833c1d..dd18a5692f 100644 --- a/src/Magick.NET/Drawing/Coordinates/DrawableCoordinates.cs +++ b/src/Magick.NET/Drawing/Coordinates/DrawableCoordinates.cs @@ -13,7 +13,7 @@ internal abstract class DrawableCoordinates : IReadOnlyList coordinates, int minCount) { - Throw.IfNull(nameof(coordinates), coordinates); + Throw.IfNull(coordinates); _coordinates = DrawableCoordinates.CheckCoordinates(new List(coordinates), minCount); } diff --git a/src/Magick.NET/Drawing/DrawableBorderColor.cs b/src/Magick.NET/Drawing/DrawableBorderColor.cs index 2c596775df..a6c66bdfe0 100644 --- a/src/Magick.NET/Drawing/DrawableBorderColor.cs +++ b/src/Magick.NET/Drawing/DrawableBorderColor.cs @@ -24,7 +24,7 @@ public sealed partial class DrawableBorderColor : IDrawableBorderColorThe color of the border. public DrawableBorderColor(IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); Color = color; } diff --git a/src/Magick.NET/Drawing/DrawableClipPath.cs b/src/Magick.NET/Drawing/DrawableClipPath.cs index 706976ca98..b42b009068 100644 --- a/src/Magick.NET/Drawing/DrawableClipPath.cs +++ b/src/Magick.NET/Drawing/DrawableClipPath.cs @@ -15,7 +15,7 @@ public sealed class DrawableClipPath : IDrawableClipPath, IDrawingWand /// The ID of the clip path. public DrawableClipPath(string clipPath) { - Throw.IfNullOrEmpty(nameof(clipPath), clipPath); + Throw.IfNullOrEmpty(clipPath); ClipPath = clipPath; } diff --git a/src/Magick.NET/Drawing/DrawableComposite.cs b/src/Magick.NET/Drawing/DrawableComposite.cs index 93ae4a8fcc..2281cb8e6e 100644 --- a/src/Magick.NET/Drawing/DrawableComposite.cs +++ b/src/Magick.NET/Drawing/DrawableComposite.cs @@ -56,7 +56,7 @@ public DrawableComposite(double x, double y, double width, double height, Compos private DrawableComposite(IMagickImage image) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); Image = image; } diff --git a/src/Magick.NET/Drawing/DrawableFillColor.cs b/src/Magick.NET/Drawing/DrawableFillColor.cs index 01d993cf88..5031e9e7de 100644 --- a/src/Magick.NET/Drawing/DrawableFillColor.cs +++ b/src/Magick.NET/Drawing/DrawableFillColor.cs @@ -24,7 +24,7 @@ public sealed partial class DrawableFillColor : IDrawableFillColor, /// The color to use. public DrawableFillColor(IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); Color = color; } diff --git a/src/Magick.NET/Drawing/DrawableFont.cs b/src/Magick.NET/Drawing/DrawableFont.cs index 390b89b90a..3039c2a50d 100644 --- a/src/Magick.NET/Drawing/DrawableFont.cs +++ b/src/Magick.NET/Drawing/DrawableFont.cs @@ -30,7 +30,7 @@ public DrawableFont(string family) /// The font stretching type. public DrawableFont(string family, FontStyleType style, FontWeight weight, FontStretch stretch) { - Throw.IfNullOrEmpty(nameof(family), family); + Throw.IfNullOrEmpty(family); Family = family; Style = style; diff --git a/src/Magick.NET/Drawing/DrawableStrokeColor.cs b/src/Magick.NET/Drawing/DrawableStrokeColor.cs index 2bb42e498f..512c8e3909 100644 --- a/src/Magick.NET/Drawing/DrawableStrokeColor.cs +++ b/src/Magick.NET/Drawing/DrawableStrokeColor.cs @@ -24,7 +24,7 @@ public sealed partial class DrawableStrokeColor : IDrawableStrokeColorThe color to use. public DrawableStrokeColor(IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); Color = color; } diff --git a/src/Magick.NET/Drawing/DrawableText.cs b/src/Magick.NET/Drawing/DrawableText.cs index 4c1aa2d0ce..9ac1ef2678 100644 --- a/src/Magick.NET/Drawing/DrawableText.cs +++ b/src/Magick.NET/Drawing/DrawableText.cs @@ -16,7 +16,7 @@ public sealed class DrawableText : IDrawableText, IDrawingWand /// The text to draw. public DrawableText(double x, double y, string value) { - Throw.IfNullOrEmpty(nameof(value), value); + Throw.IfNullOrEmpty(value); X = x; Y = y; diff --git a/src/Magick.NET/Drawing/DrawableTextEncoding.cs b/src/Magick.NET/Drawing/DrawableTextEncoding.cs index c6c9840d13..d2a9243846 100644 --- a/src/Magick.NET/Drawing/DrawableTextEncoding.cs +++ b/src/Magick.NET/Drawing/DrawableTextEncoding.cs @@ -16,7 +16,7 @@ public sealed class DrawableTextEncoding : IDrawableTextEncoding, IDrawingWand /// Encoding to use. public DrawableTextEncoding(Encoding encoding) { - Throw.IfNull(nameof(encoding), encoding); + Throw.IfNull(encoding); Encoding = encoding; } diff --git a/src/Magick.NET/Drawing/DrawableTextUnderColor.cs b/src/Magick.NET/Drawing/DrawableTextUnderColor.cs index 576249bd14..f673661405 100644 --- a/src/Magick.NET/Drawing/DrawableTextUnderColor.cs +++ b/src/Magick.NET/Drawing/DrawableTextUnderColor.cs @@ -24,7 +24,7 @@ public sealed partial class DrawableTextUnderColor : IDrawableTextUnderColorThe color to use. public DrawableTextUnderColor(IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); Color = color; } diff --git a/src/Magick.NET/Drawing/Drawables.cs b/src/Magick.NET/Drawing/Drawables.cs index 75651f3c84..005633697a 100644 --- a/src/Magick.NET/Drawing/Drawables.cs +++ b/src/Magick.NET/Drawing/Drawables.cs @@ -66,7 +66,7 @@ public IDrawables Density(double density) /// The current instance. public IDrawables Draw(IMagickImage image) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); image.Draw(this); return this; diff --git a/src/Magick.NET/Formats/Pdf/PdfInfo.cs b/src/Magick.NET/Formats/Pdf/PdfInfo.cs index c73a5d4c6f..fd3ffe07f0 100644 --- a/src/Magick.NET/Formats/Pdf/PdfInfo.cs +++ b/src/Magick.NET/Formats/Pdf/PdfInfo.cs @@ -36,7 +36,7 @@ public static PdfInfo Create(FileInfo file) /// The info of a file. public static PdfInfo Create(FileInfo file, string password) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return Create(file.FullName, password); } @@ -60,7 +60,7 @@ public static PdfInfo Create(string fileName, string password) Throw.IfNullOrEmpty(nameof(fileName), filePath); filePath = filePath.Replace('\\', '/'); - Throw.IfNull(nameof(password), password); + Throw.IfNull(password); var pageCount = NativePdfInfo.PageCount(filePath, password); if (pageCount == 0) diff --git a/src/Magick.NET/Formats/Psd/PsdAdditionalInfo.cs b/src/Magick.NET/Formats/Psd/PsdAdditionalInfo.cs index 8566ada7f2..1fdee32f92 100644 --- a/src/Magick.NET/Formats/Psd/PsdAdditionalInfo.cs +++ b/src/Magick.NET/Formats/Psd/PsdAdditionalInfo.cs @@ -38,7 +38,7 @@ private PsdAdditionalInfo(string layerName) /// The additional info from a image. public static PsdAdditionalInfo? FromImage(IMagickImage image) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); var profile = image.GetProfile("psd:additional-info"); if (profile is null) diff --git a/src/Magick.NET/Helpers/PercentageHelper.cs b/src/Magick.NET/Helpers/PercentageHelper.cs index 691f4fd2ef..8a60edeea8 100644 --- a/src/Magick.NET/Helpers/PercentageHelper.cs +++ b/src/Magick.NET/Helpers/PercentageHelper.cs @@ -23,7 +23,7 @@ public static double ToQuantum(string paramName, Percentage percentage) var value = percentage.ToDouble(); #if !Q16HDRI - Throw.IfNegative(paramName, value); + Throw.IfNegative(value, paramName); #endif return Quantum.Max * (value / 100); @@ -34,7 +34,7 @@ public static QuantumType ToQuantumType(string paramName, Percentage percentage) var value = percentage.ToDouble(); #if !Q16HDRI - Throw.IfNegative(paramName, value); + Throw.IfNegative(value, paramName); #endif return (QuantumType)(Quantum.Max * (value / 100)); diff --git a/src/Magick.NET/ImageOptimizers/GifOptimizer.cs b/src/Magick.NET/ImageOptimizers/GifOptimizer.cs index 861f8345c0..5fd0e28b19 100644 --- a/src/Magick.NET/ImageOptimizers/GifOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/GifOptimizer.cs @@ -71,7 +71,7 @@ public bool Compress(Stream stream) /// True when the image could be compressed otherwise false. public bool LosslessCompress(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return DoLosslessCompress(file); } diff --git a/src/Magick.NET/ImageOptimizers/IcoOptimizer.cs b/src/Magick.NET/ImageOptimizers/IcoOptimizer.cs index 65587a8b9f..77158ef82e 100644 --- a/src/Magick.NET/ImageOptimizers/IcoOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/IcoOptimizer.cs @@ -76,7 +76,7 @@ public bool Compress(Stream stream) /// True when the image could be compressed otherwise false. public bool LosslessCompress(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return DoCompress(file, true); } diff --git a/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs b/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs index ec60562511..fb2c41000e 100644 --- a/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs @@ -1,9 +1,9 @@ // Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. // Licensed under the Apache License, Version 2.0. -using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; +using System.Linq; using ImageMagick.ImageOptimizers; namespace ImageMagick; @@ -27,20 +27,7 @@ public sealed class ImageOptimizer /// public bool OptimalCompression { get; set; } - private string SupportedFormats - { - get - { - var formats = new List(_optimizers.Count); - - foreach (var optimizer in _optimizers) - { - formats.Add(optimizer.Format.ModuleFormat.ToString()); - } - - return string.Join(", ", formats.ToArray()); - } - } + private string SupportedFormats => string.Join(", ", _optimizers.Select(o => o.Format.ModuleFormat.ToString())); /// /// Performs compression on the specified file. With some formats the image will be decoded @@ -51,7 +38,7 @@ private string SupportedFormats /// True when the image could be compressed otherwise false. public bool Compress(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return DoCompress(file); } @@ -133,7 +120,7 @@ public bool IsSupported(string fileName) /// True when the supplied stream is supported. public bool IsSupported(Stream stream) { - Throw.IfNull(nameof(stream), stream); + Throw.IfNull(stream); if (!stream.CanRead || !stream.CanWrite || !stream.CanSeek) return false; @@ -149,7 +136,7 @@ public bool IsSupported(Stream stream) /// True when the image could be compressed otherwise false. public bool LosslessCompress(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return DoLosslessCompress(file); } diff --git a/src/Magick.NET/ImageOptimizers/ImageOptimizerHelper.cs b/src/Magick.NET/ImageOptimizers/ImageOptimizerHelper.cs index 8543bd14ca..c49515d9e1 100644 --- a/src/Magick.NET/ImageOptimizers/ImageOptimizerHelper.cs +++ b/src/Magick.NET/ImageOptimizers/ImageOptimizerHelper.cs @@ -26,7 +26,7 @@ public static void CheckFormat(IMagickImage image, MagickFormat exp public static void CheckStream(Stream stream) { - Throw.IfNullOrEmpty(nameof(stream), stream); + Throw.IfNullOrEmpty(stream); Throw.IfFalse(nameof(stream), stream.CanRead, "The stream should be readable."); Throw.IfFalse(nameof(stream), stream.CanWrite, "The stream should be writeable."); Throw.IfFalse(nameof(stream), stream.CanSeek, "The stream should be seekable."); diff --git a/src/Magick.NET/ImageOptimizers/JpegOptimizer.cs b/src/Magick.NET/ImageOptimizers/JpegOptimizer.cs index 3fd9937c3a..d528bfeaf3 100644 --- a/src/Magick.NET/ImageOptimizers/JpegOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/JpegOptimizer.cs @@ -49,7 +49,7 @@ public bool Compress(FileInfo file) /// True when the image could be compressed otherwise false. public bool Compress(FileInfo file, uint quality) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return DoCompress(file, false, quality); } @@ -109,7 +109,7 @@ public bool Compress(Stream stream, uint quality) /// True when the image could be compressed otherwise false. public bool LosslessCompress(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return DoCompress(file, true, 0); } diff --git a/src/Magick.NET/ImageOptimizers/PngOptimizer.cs b/src/Magick.NET/ImageOptimizers/PngOptimizer.cs index 7903367ff2..cc4057bfbc 100644 --- a/src/Magick.NET/ImageOptimizers/PngOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/PngOptimizer.cs @@ -66,7 +66,7 @@ public bool Compress(Stream stream) /// True when the image could be compressed otherwise false. public bool LosslessCompress(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return DoCompress(file, true); } diff --git a/src/Magick.NET/Magick.NET.csproj b/src/Magick.NET/Magick.NET.csproj index ebf715c8f5..a2f556c63b 100644 --- a/src/Magick.NET/Magick.NET.csproj +++ b/src/Magick.NET/Magick.NET.csproj @@ -76,6 +76,7 @@ + diff --git a/src/Magick.NET/MagickFormatInfo.cs b/src/Magick.NET/MagickFormatInfo.cs index 21a1821fe7..6cec89d5e0 100644 --- a/src/Magick.NET/MagickFormatInfo.cs +++ b/src/Magick.NET/MagickFormatInfo.cs @@ -84,7 +84,7 @@ internal static IReadOnlyCollection All /// The format information. public static IMagickFormatInfo? Create(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); var format = EnumHelper.ParseMagickFormatFromExtension(file); @@ -115,7 +115,7 @@ internal static IReadOnlyCollection All /// The format information. public static IMagickFormatInfo? Create(byte[] data) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); return NativeMagickFormatInfo.GetInfoWithBlob(data, (uint)data.Length); } diff --git a/src/Magick.NET/MagickImage.CloneMutator.cs b/src/Magick.NET/MagickImage.CloneMutator.cs index 3a645d653f..2a47816466 100644 --- a/src/Magick.NET/MagickImage.CloneMutator.cs +++ b/src/Magick.NET/MagickImage.CloneMutator.cs @@ -57,7 +57,7 @@ public void AdaptiveResize(uint width, uint height) public void AdaptiveResize(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); SetResult(NativeMagickImage.AdaptiveResize(geometry.ToString())); } @@ -106,7 +106,7 @@ public void AddNoise(NoiseType noiseType, double attenuate, Channels channels) public void AffineTransform(IDrawableAffine affineMatrix) { - Throw.IfNull(nameof(affineMatrix), affineMatrix); + Throw.IfNull(affineMatrix); SetResult(NativeMagickImage.AffineTransform(affineMatrix.ScaleX, affineMatrix.ScaleY, affineMatrix.ShearX, affineMatrix.ShearY, affineMatrix.TranslateX, affineMatrix.TranslateY)); } @@ -176,17 +176,17 @@ public void ChopVertical(int offset, uint height) public void Colorize(IMagickColor color, Percentage alpha) { - Throw.IfNegative(nameof(alpha), alpha); + Throw.IfNegative(alpha); Colorize(color, alpha, alpha, alpha); } public void Colorize(IMagickColor color, Percentage alphaRed, Percentage alphaGreen, Percentage alphaBlue) { - Throw.IfNull(nameof(color), color); - Throw.IfNegative(nameof(alphaRed), alphaRed); - Throw.IfNegative(nameof(alphaGreen), alphaGreen); - Throw.IfNegative(nameof(alphaBlue), alphaBlue); + Throw.IfNull(color); + Throw.IfNegative(alphaRed); + Throw.IfNegative(alphaGreen); + Throw.IfNegative(alphaBlue); var blend = string.Format(CultureInfo.InvariantCulture, "{0}/{1}/{2}", alphaRed.ToInt32(), alphaGreen.ToInt32(), alphaBlue.ToInt32()); @@ -195,14 +195,14 @@ public void Colorize(IMagickColor color, Percentage alphaRed, Perce public void ColorMatrix(IMagickColorMatrix matrix) { - Throw.IfNull(nameof(matrix), matrix); + Throw.IfNull(matrix); SetResult(NativeMagickImage.ColorMatrix(matrix)); } public void Convolve(IConvolveMatrix matrix) { - Throw.IfNull(nameof(matrix), matrix); + Throw.IfNull(matrix); SetResult(NativeMagickImage.Convolve(matrix)); } @@ -218,7 +218,7 @@ public void Crop(IMagickGeometry geometry) public void Crop(IMagickGeometry geometry, Gravity gravity) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); SetResult(NativeMagickImage.Crop(geometry.ToString(), gravity)); } @@ -237,8 +237,8 @@ public void Distort(DistortMethod method, params double[] arguments) public void Distort(IDistortSettings settings, params double[] arguments) { - Throw.IfNull(nameof(settings), settings); - Throw.IfNullOrEmpty(nameof(arguments), arguments); + Throw.IfNull(settings); + Throw.IfNullOrEmpty(arguments); using var temporaryDefines = new TemporaryDefines(NativeMagickImage); temporaryDefines.SetArtifact("distort:scale", settings.Scale); @@ -279,7 +279,7 @@ public void Extent(IMagickGeometry geometry) public void Extent(IMagickGeometry geometry, IMagickColor backgroundColor) { - Throw.IfNull(nameof(backgroundColor), backgroundColor); + Throw.IfNull(backgroundColor); NativeMagickImage.BackgroundColor_Set(backgroundColor); Extent(geometry); @@ -287,14 +287,14 @@ public void Extent(IMagickGeometry geometry, IMagickColor backgroun public void Extent(IMagickGeometry geometry, Gravity gravity) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); SetResult(NativeMagickImage.Extent(geometry.ToString(), gravity)); } public void Extent(IMagickGeometry geometry, Gravity gravity, IMagickColor backgroundColor) { - Throw.IfNull(nameof(backgroundColor), backgroundColor); + Throw.IfNull(backgroundColor); NativeMagickImage.BackgroundColor_Set(backgroundColor); Extent(geometry, gravity); @@ -344,7 +344,7 @@ public void InterpolativeResize(uint width, uint height, PixelInterpolateMethod public void InterpolativeResize(IMagickGeometry geometry, PixelInterpolateMethod method) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); SetResult(NativeMagickImage.InterpolativeResize(geometry.ToString(), method)); } @@ -373,7 +373,7 @@ public void LiquidRescale(uint width, uint height, double deltaX, double rigidit public void LiquidRescale(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); SetResult(NativeMagickImage.LiquidRescale(geometry.ToString(), geometry.X, geometry.Y)); } @@ -411,8 +411,8 @@ public void Minify() public void Morphology(IMorphologySettings settings) { - Throw.IfNull(nameof(settings), settings); - Throw.IfTrue(nameof(settings), settings.Iterations < -1, "The number of iterations must be unlimited (-1) or positive"); + Throw.IfNull(settings); + Throw.IfTrue(settings.Iterations < -1, nameof(settings), "The number of iterations must be unlimited (-1) or positive"); using var temporaryDefines = new TemporaryDefines(NativeMagickImage); temporaryDefines.SetArtifact("convolve:bias", settings.ConvolveBias); @@ -443,7 +443,7 @@ public void Resize(uint width, uint height) public void Resize(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); SetResult(NativeMagickImage.Resize(geometry.ToString())); } @@ -477,7 +477,7 @@ public void Sample(uint width, uint height) public void Sample(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); SetResult(NativeMagickImage.Sample(geometry.ToString())); } @@ -493,7 +493,7 @@ public void Scale(uint width, uint height) public void Scale(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); SetResult(NativeMagickImage.Scale(geometry.ToString())); } @@ -551,7 +551,7 @@ public void Shadow(int x, int y, double sigma, Percentage alpha) public void Shadow(int x, int y, double sigma, Percentage alpha, IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); var backgroundColor = NativeMagickImage.BackgroundColor_Get(); NativeMagickImage.BackgroundColor_Set(color); @@ -600,14 +600,14 @@ public void SparseColor(SparseColorMethod method, params ISparseColorArg> args) { - Throw.IfNull(nameof(args), args); + Throw.IfNull(args); var hasRed = EnumHelper.HasFlag(channels, ImageMagick.Channels.Red); var hasGreen = EnumHelper.HasFlag(channels, ImageMagick.Channels.Green); var hasBlue = EnumHelper.HasFlag(channels, ImageMagick.Channels.Blue); var hasAlpha = NativeMagickImage.HasAlpha_Get() && EnumHelper.HasFlag(channels, ImageMagick.Channels.Alpha); - Throw.IfTrue(nameof(channels), !hasRed && !hasGreen && !hasBlue && !hasAlpha, "Invalid channels specified."); + Throw.IfTrue(!hasRed && !hasGreen && !hasBlue && !hasAlpha, nameof(channels), "Invalid channels specified."); var arguments = new List(); @@ -625,7 +625,7 @@ public void SparseColor(Channels channels, SparseColorMethod method, IEnumerable arguments.Add(Quantum.ScaleToDouble(arg.Color.A)); } - Throw.IfTrue(nameof(args), arguments.Count == 0, "Value cannot be empty"); + Throw.IfTrue(arguments.Count == 0, nameof(args), "Value cannot be empty"); SetResult(NativeMagickImage.SparseColor(channels, method, arguments.ToArray(), (nuint)arguments.Count)); } @@ -650,14 +650,14 @@ public void Statistic(StatisticType type, uint width, uint height) public void Stegano(IMagickImage watermark) { - Throw.IfNull(nameof(watermark), watermark); + Throw.IfNull(watermark); SetResult(NativeMagickImage.Stegano(watermark)); } public void Stereo(IMagickImage rightImage) { - Throw.IfNull(nameof(rightImage), rightImage); + Throw.IfNull(rightImage); SetResult(NativeMagickImage.Stereo(rightImage)); } @@ -673,7 +673,7 @@ public void Thumbnail(uint width, uint height) public void Thumbnail(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); SetResult(NativeMagickImage.Thumbnail(geometry.ToString())); } @@ -686,8 +686,8 @@ public void Thumbnail(Percentage percentageWidth, Percentage percentageHeight) public void Tint(IMagickGeometry opacity, IMagickColor color) { - Throw.IfNull(nameof(opacity), opacity); - Throw.IfNull(nameof(color), color); + Throw.IfNull(opacity); + Throw.IfNull(color); SetResult(NativeMagickImage.Tint(opacity.ToString(), color)); } diff --git a/src/Magick.NET/MagickImage.cs b/src/Magick.NET/MagickImage.cs index d6afc31599..29b9cd9bfb 100644 --- a/src/Magick.NET/MagickImage.cs +++ b/src/Magick.NET/MagickImage.cs @@ -153,7 +153,7 @@ public MagickImage(IMagickColor color, uint width, uint height) /// The image to create a copy of. public MagickImage(IMagickImage image) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); if (image is not MagickImage magickImage) throw new NotSupportedException(); @@ -1192,8 +1192,8 @@ public void Annotate(string text, IMagickGeometry boundingArea, Gravity gravity) /// Thrown when an error is raised by ImageMagick. public void Annotate(string text, IMagickGeometry boundingArea, Gravity gravity, double angle) { - Throw.IfNullOrEmpty(nameof(text), text); - Throw.IfNull(nameof(boundingArea), boundingArea); + Throw.IfNullOrEmpty(text); + Throw.IfNull(boundingArea); _nativeInstance.Annotate(_settings.Drawing, text, boundingArea.ToString(), gravity, angle); } @@ -1206,7 +1206,7 @@ public void Annotate(string text, IMagickGeometry boundingArea, Gravity gravity, /// Thrown when an error is raised by ImageMagick. public void Annotate(string text, Gravity gravity) { - Throw.IfNullOrEmpty(nameof(text), text); + Throw.IfNullOrEmpty(text); _nativeInstance.AnnotateGravity(_settings.Drawing, text, gravity); } @@ -1306,7 +1306,7 @@ public void BlackThreshold(Percentage threshold) /// Thrown when an error is raised by ImageMagick. public void BlackThreshold(Percentage threshold, Channels channels) { - Throw.IfNegative(nameof(threshold), threshold); + Throw.IfNegative(threshold); _nativeInstance.BlackThreshold(threshold.ToString(), channels); } @@ -1580,7 +1580,7 @@ public void Clip() /// Thrown when an error is raised by ImageMagick. public void Clip(string pathName) { - Throw.IfNullOrEmpty(nameof(pathName), pathName); + Throw.IfNullOrEmpty(pathName); _nativeInstance.ClipPath(pathName, true); } @@ -1604,7 +1604,7 @@ public void ClipOutside() /// Thrown when an error is raised by ImageMagick. public void ClipOutside(string pathName) { - Throw.IfNullOrEmpty(nameof(pathName), pathName); + Throw.IfNullOrEmpty(pathName); _nativeInstance.ClipPath(pathName, false); } @@ -1671,7 +1671,7 @@ public IMagickImage Clone(int x, int y, uint width, uint height) /// Thrown when an error is raised by ImageMagick. public IMagickImage CloneArea(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); var clone = new MagickImage(); clone.SetInstance(_nativeInstance.CloneArea(geometry.Width, geometry.Height)); @@ -1736,7 +1736,7 @@ public void Clut(IMagickImage image, PixelInterpolateMethod method) /// Thrown when an error is raised by ImageMagick. public void Clut(IMagickImage image, PixelInterpolateMethod method, Channels channels) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); _nativeInstance.Clut(image, method, channels); } @@ -1748,7 +1748,7 @@ public void Clut(IMagickImage image, PixelInterpolateMethod method, Channels cha /// Thrown when an error is raised by ImageMagick. public void ColorAlpha(IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); if (!HasAlpha) return; @@ -1765,7 +1765,7 @@ public void ColorAlpha(IMagickColor color) /// Thrown when an error is raised by ImageMagick. public void ColorDecisionList(string fileName) { - Throw.IfNullOrEmpty(nameof(fileName), fileName); + Throw.IfNullOrEmpty(fileName); var filePath = FileHelper.CheckForBaseDirectory(fileName); _nativeInstance.ColorDecisionList(filePath); @@ -1816,8 +1816,8 @@ public void ColorMatrix(IMagickColorMatrix matrix) /// The stop color of the color range. public void ColorThreshold(IMagickColor startColor, IMagickColor stopColor) { - Throw.IfNull(nameof(startColor), startColor); - Throw.IfNull(nameof(stopColor), stopColor); + Throw.IfNull(startColor); + Throw.IfNull(stopColor); _nativeInstance.ColorThreshold(startColor, stopColor); } @@ -1830,7 +1830,7 @@ public void ColorThreshold(IMagickColor startColor, IMagickColorThrown when an error is raised by ImageMagick. public IMagickErrorInfo Compare(IMagickImage image) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); if (_nativeInstance.SetColorMetric(image)) return new MagickErrorInfo(); @@ -1858,7 +1858,7 @@ public double Compare(IMagickImage image, ErrorMetric metric) /// Thrown when an error is raised by ImageMagick. public double Compare(IMagickImage image, ErrorMetric metric, Channels channels) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); return _nativeInstance.CompareDistortion(image, metric, channels); } @@ -1908,8 +1908,8 @@ public IMagickImage Compare(IMagickImage image, ICompareSettingsThrown when an error is raised by ImageMagick. public IMagickImage Compare(IMagickImage image, ICompareSettings settings, Channels channels, out double distortion) { - Throw.IfNull(nameof(image), image); - Throw.IfNull(nameof(settings), settings); + Throw.IfNull(image); + Throw.IfNull(settings); using var temporaryDefines = new TemporaryDefines(this); temporaryDefines.SetArtifact("compare:highlight-color", settings.HighlightColor); @@ -2064,7 +2064,7 @@ public void Composite(IMagickImage image, int x, int y, CompositeOperator compos /// Thrown when an error is raised by ImageMagick. public void Composite(IMagickImage image, int x, int y, CompositeOperator compose, string? args, Channels channels) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); using var temporaryDefines = new TemporaryDefines(this); temporaryDefines.SetArtifact("compose:args", args); @@ -2209,7 +2209,7 @@ public void Composite(IMagickImage image, Gravity gravity, int x, int y, Composi /// Thrown when an error is raised by ImageMagick. public void Composite(IMagickImage image, Gravity gravity, int x, int y, CompositeOperator compose, string? args, Channels channels) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); using var temporaryDefines = new TemporaryDefines(this); temporaryDefines.SetArtifact("compose:args", args); @@ -2240,7 +2240,7 @@ public IReadOnlyList> ConnectedComponents(uint /// Thrown when an error is raised by ImageMagick. public IReadOnlyList> ConnectedComponents(IConnectedComponentsSettings settings) { - Throw.IfNull(nameof(settings), settings); + Throw.IfNull(settings); var objects = IntPtr.Zero; @@ -2309,8 +2309,8 @@ public void ContrastStretch(Percentage blackPoint, Percentage whitePoint) /// Thrown when an error is raised by ImageMagick. public void ContrastStretch(Percentage blackPoint, Percentage whitePoint, Channels channels) { - Throw.IfNegative(nameof(blackPoint), blackPoint); - Throw.IfNegative(nameof(whitePoint), whitePoint); + Throw.IfNegative(blackPoint); + Throw.IfNegative(whitePoint); var contrast = CalculateContrastStretch(blackPoint, whitePoint); _nativeInstance.ContrastStretch(contrast.X, contrast.Y, channels); @@ -2361,7 +2361,7 @@ public void CopyPixels(IMagickImage source) /// Thrown when an error is raised by ImageMagick. public void CopyPixels(IMagickImage source, Channels channels) { - Throw.IfNull(nameof(source), source); + Throw.IfNull(source); var geometry = new MagickGeometry(0, 0, Math.Min(source.Width, Width), Math.Min(source.Height, Height)); @@ -2411,7 +2411,7 @@ public void CopyPixels(IMagickImage source, IMagickGeometry geometry, int x, int /// Thrown when an error is raised by ImageMagick. public void CopyPixels(IMagickImage source, IMagickGeometry geometry, int x, int y, Channels channels) { - Throw.IfNull(nameof(source), source); + Throw.IfNull(source); _nativeInstance.CopyPixels(source, MagickRectangle.FromGeometry(geometry, this), new OffsetInfo(x, y), channels); } @@ -2484,7 +2484,7 @@ public IReadOnlyList> CropToTiles(uint width, uint hei /// New title of the current image. public IReadOnlyList> CropToTiles(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); var images = _nativeInstance.CropToTiles(geometry.ToString()); return CreateList(images); @@ -2505,7 +2505,7 @@ public void CycleColormap(int amount) /// Thrown when an error is raised by ImageMagick. public void Decipher(string passphrase) { - Throw.IfNullOrEmpty(nameof(passphrase), passphrase); + Throw.IfNullOrEmpty(passphrase); _nativeInstance.Decipher(passphrase); } @@ -2636,7 +2636,7 @@ public void Draw(params IDrawable[] drawables) /// Thrown when an error is raised by ImageMagick. public void Draw(IEnumerable drawables) { - Throw.IfNull(nameof(drawables), drawables); + Throw.IfNull(drawables); using var wand = new DrawingWand(this); wand.Draw(drawables); @@ -2682,7 +2682,7 @@ public void Emboss(double radius, double sigma) /// Thrown when an error is raised by ImageMagick. public void Encipher(string passphrase) { - Throw.IfNullOrEmpty(nameof(passphrase), passphrase); + Throw.IfNullOrEmpty(passphrase); _nativeInstance.Encipher(passphrase); } @@ -2721,7 +2721,7 @@ public void Equalize(Channels channels) /// Thrown when an error is raised by ImageMagick. public void Evaluate(Channels channels, EvaluateFunction evaluateFunction, params double[] arguments) { - Throw.IfNullOrEmpty(nameof(arguments), arguments); + Throw.IfNullOrEmpty(arguments); _nativeInstance.EvaluateFunction(channels, evaluateFunction, arguments, (nuint)arguments.Length); } @@ -2977,7 +2977,7 @@ public void Flop() /// Thrown when an error is raised by ImageMagick. public ITypeMetric? FontTypeMetrics(string text, bool ignoreNewlines) { - Throw.IfNullOrEmpty(nameof(text), text); + Throw.IfNullOrEmpty(text); var settings = _settings.Drawing; @@ -2995,7 +2995,7 @@ public void Flop() /// Thrown when an error is raised by ImageMagick. public string? FormatExpression(string expression) { - Throw.IfNullOrEmpty(nameof(expression), expression); + Throw.IfNullOrEmpty(expression); return _nativeInstance.FormatExpression(Settings, expression); } @@ -3063,7 +3063,7 @@ public void Fx(string expression) /// Thrown when an error is raised by ImageMagick. public void Fx(string expression, Channels channels) { - Throw.IfNullOrEmpty(nameof(expression), expression); + Throw.IfNullOrEmpty(expression); _nativeInstance.Instance = _nativeInstance.Fx(expression, channels); } @@ -3154,7 +3154,7 @@ public void GaussianBlur(double radius, double sigma, Channels channels) /// The value of the artifact with the specified name. public string? GetArtifact(string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); return _nativeInstance.GetArtifact(name); } @@ -3167,7 +3167,7 @@ public void GaussianBlur(double radius, double sigma, Channels channels) /// Thrown when an error is raised by ImageMagick. public string? GetAttribute(string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); return _nativeInstance.GetAttribute(name); } @@ -3276,7 +3276,7 @@ public IUnsafePixelCollection GetPixelsUnsafe() /// Thrown when an error is raised by ImageMagick. public IImageProfile? GetProfile(string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); var info = _nativeInstance.GetProfile(name); if (info is null || info.Datum is null) @@ -3337,7 +3337,7 @@ public void Grayscale(PixelIntensityMethod method) /// A value indicating whether a profile with the specified name already exists on the image. public bool HasProfile(string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); return _nativeInstance.HasProfile(name); } @@ -3358,7 +3358,7 @@ public void HaldClut(IMagickImage image) /// Thrown when an error is raised by ImageMagick. public void HaldClut(IMagickImage image, Channels channels) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); _nativeInstance.HaldClut(image, channels); } @@ -3425,7 +3425,7 @@ public void Implode(double amount, PixelInterpolateMethod method) /// Thrown when an error is raised by ImageMagick. public void ImportPixels(byte[] data, IPixelImportSettings settings) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); ImportPixels(data, 0, settings); } @@ -3439,15 +3439,15 @@ public void ImportPixels(byte[] data, IPixelImportSettings settings) /// Thrown when an error is raised by ImageMagick. public void ImportPixels(byte[] data, uint offset, IPixelImportSettings settings) { - Throw.IfNullOrEmpty(nameof(data), data); - Throw.IfTrue(nameof(offset), offset >= data.Length, "The offset should not exceed the length of the array."); - Throw.IfNull(nameof(settings), settings); + Throw.IfNullOrEmpty(data); + Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); + Throw.IfNull(settings); Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); - Throw.IfTrue(nameof(settings), settings.StorageType == StorageType.Undefined, "Storage type should not be undefined."); + Throw.IfTrue(settings.StorageType == StorageType.Undefined, nameof(settings), "Storage type should not be undefined."); var length = data.Length - offset; var expectedLength = GetExpectedByteLength(settings); - Throw.IfTrue(nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", data.Length, expectedLength + offset); + Throw.IfTrue(length < expectedLength, nameof(data), "The data length is {0} but should be at least {1}.", data.Length, expectedLength + offset); _nativeInstance.ImportPixels(settings.X, settings.Y, settings.Width, settings.Height, settings.Mapping, settings.StorageType, data, offset); } @@ -3461,7 +3461,7 @@ public void ImportPixels(byte[] data, uint offset, IPixelImportSettings settings /// Thrown when an error is raised by ImageMagick. public void ImportPixels(QuantumType[] data, IPixelImportSettings settings) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); ImportPixels(data, 0, settings); } @@ -3475,15 +3475,15 @@ public void ImportPixels(QuantumType[] data, IPixelImportSettings settings) /// Thrown when an error is raised by ImageMagick. public void ImportPixels(QuantumType[] data, uint offset, IPixelImportSettings settings) { - Throw.IfNullOrEmpty(nameof(data), data); - Throw.IfTrue(nameof(offset), offset >= data.Length, "The offset should not exceed the length of the array."); - Throw.IfNull(nameof(settings), settings); + Throw.IfNullOrEmpty(data); + Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); + Throw.IfNull(settings); Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); - Throw.IfTrue(nameof(settings), settings.StorageType != StorageType.Quantum, $"Storage type should be {nameof(StorageType.Quantum)}."); + Throw.IfTrue(settings.StorageType != StorageType.Quantum, nameof(settings), $"Storage type should be {nameof(StorageType.Quantum)}."); var length = data.Length - offset; var expectedLength = GetExpectedLength(settings); - Throw.IfTrue(nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", data.Length, expectedLength + offset); + Throw.IfTrue(data.Length, nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", expectedLength + offset); _nativeInstance.ImportPixels(settings.X, settings.Y, settings.Width, settings.Height, settings.Mapping, settings.StorageType, data, offset); } @@ -3774,7 +3774,7 @@ public void InverseSigmoidalContrast(double contrast, Percentage midpointPercent /// Thrown when an error is raised by ImageMagick. public void InverseTransparent(IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); _nativeInstance.Transparent(color, true); } @@ -3788,8 +3788,8 @@ public void InverseTransparent(IMagickColor color) /// Thrown when an error is raised by ImageMagick. public void InverseTransparentChroma(IMagickColor colorLow, IMagickColor colorHigh) { - Throw.IfNull(nameof(colorLow), colorLow); - Throw.IfNull(nameof(colorHigh), colorHigh); + Throw.IfNull(colorLow); + Throw.IfNull(colorHigh); _nativeInstance.TransparentChroma(colorLow, colorHigh, true); } @@ -3801,7 +3801,7 @@ public void InverseTransparentChroma(IMagickColor colorLow, IMagick /// Thrown when an error is raised by ImageMagick. public void Kmeans(IKmeansSettings settings) { - Throw.IfNull(nameof(settings), settings); + Throw.IfNull(settings); using var temporaryDefines = new TemporaryDefines(this); temporaryDefines.SetArtifact("kmeans:seed-colors", settings.SeedColors); @@ -4177,9 +4177,9 @@ public void Modulate(Percentage brightness, Percentage saturation) /// Thrown when an error is raised by ImageMagick. public void Modulate(Percentage brightness, Percentage saturation, Percentage hue) { - Throw.IfNegative(nameof(brightness), brightness); - Throw.IfNegative(nameof(saturation), saturation); - Throw.IfNegative(nameof(hue), hue); + Throw.IfNegative(brightness); + Throw.IfNegative(saturation); + Throw.IfNegative(hue); var modulate = string.Format(CultureInfo.InvariantCulture, "{0}/{1}/{2}", brightness.ToDouble(), saturation.ToDouble(), hue.ToDouble()); @@ -4306,7 +4306,7 @@ public void Opaque(IMagickColor target, IMagickColor f /// Thrown when an error is raised by ImageMagick. public void OrderedDither(string thresholdMap) { - Throw.IfNullOrEmpty(nameof(thresholdMap), thresholdMap); + Throw.IfNullOrEmpty(thresholdMap); OrderedDither(thresholdMap, ImageMagick.Channels.Undefined); } @@ -4321,7 +4321,7 @@ public void OrderedDither(string thresholdMap) /// Thrown when an error is raised by ImageMagick. public void OrderedDither(string thresholdMap, Channels channels) { - Throw.IfNullOrEmpty(nameof(thresholdMap), thresholdMap); + Throw.IfNullOrEmpty(thresholdMap); _nativeInstance.OrderedDither(thresholdMap, channels); } @@ -4410,10 +4410,10 @@ public void Ping(byte[] data, uint offset, uint count) /// Thrown when an error is raised by ImageMagick. public void Ping(byte[] data, uint offset, uint count, IMagickReadSettings? readSettings) { - Throw.IfNullOrEmpty(nameof(data), data); - Throw.IfTrue(nameof(count), count < 1, "The number of bytes should be at least 1."); - Throw.IfTrue(nameof(offset), offset >= data.Length, "The offset should not exceed the length of the array."); - Throw.IfTrue(nameof(count), offset + count > data.Length, "The number of bytes should not exceed the length of the array."); + Throw.IfNullOrEmpty(data); + Throw.IfTrue(count < 1, nameof(count), "The number of bytes should be at least 1."); + Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); + Throw.IfTrue(offset + count > data.Length, nameof(count), "The number of bytes should not exceed the length of the array."); Read(data, offset, count, readSettings, true); } @@ -4426,7 +4426,7 @@ public void Ping(byte[] data, uint offset, uint count, IMagickReadSettingsThrown when an error is raised by ImageMagick. public void Ping(byte[] data, IMagickReadSettings? readSettings) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); Ping(data, 0, (uint)data.Length, readSettings); } @@ -4446,7 +4446,7 @@ public void Ping(byte[] data, IMagickReadSettings? readSettings) /// Thrown when an error is raised by ImageMagick. public void Ping(FileInfo file, IMagickReadSettings? readSettings) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); Read(file.FullName, readSettings, true); } @@ -4494,7 +4494,7 @@ public void Ping(string fileName, IMagickReadSettings? readSettings /// Thrown when an error is raised by ImageMagick. public void Polaroid(string caption, double angle, PixelInterpolateMethod method) { - Throw.IfNull(nameof(caption), caption); + Throw.IfNull(caption); _nativeInstance.Polaroid(_settings.Drawing, caption, angle, method); } @@ -4554,7 +4554,7 @@ public void PreserveColorType() /// Thrown when an error is raised by ImageMagick. public IMagickErrorInfo? Quantize(IQuantizeSettings settings) { - Throw.IfNull(nameof(settings), settings); + Throw.IfNull(settings); _nativeInstance.Quantize(settings); @@ -4675,10 +4675,10 @@ public void Read(byte[] data, uint offset, uint count, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(byte[] data, uint offset, uint count, IMagickReadSettings? readSettings) { - Throw.IfNullOrEmpty(nameof(data), data); - Throw.IfTrue(nameof(count), count < 1, "The number of bytes should be at least 1."); - Throw.IfTrue(nameof(offset), offset >= data.Length, "The offset should not exceed the length of the array."); - Throw.IfTrue(nameof(count), offset + count > data.Length, "The number of bytes should not exceed the length of the array."); + Throw.IfNullOrEmpty(data); + Throw.IfTrue(count < 1, nameof(count), "The number of bytes should be at least 1."); + Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); + Throw.IfTrue(offset + count > data.Length, nameof(count), "The number of bytes should not exceed the length of the array."); Read(data, offset, count, readSettings, false); } @@ -4691,7 +4691,7 @@ public void Read(byte[] data, uint offset, uint count, IMagickReadSettingsThrown when an error is raised by ImageMagick. public void Read(byte[] data, MagickFormat format) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); Read(data, 0U, (nuint)data.Length, new MagickReadSettings(_settings) { Format = format }, false); } @@ -4704,7 +4704,7 @@ public void Read(byte[] data, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(byte[] data, IMagickReadSettings? readSettings) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); Read(data, 0U, (nuint)data.Length, readSettings, false); } @@ -4726,7 +4726,7 @@ public void Read(FileInfo file) /// Thrown when an error is raised by ImageMagick. public void Read(FileInfo file, uint width, uint height) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); Read(file.FullName, width, height); } @@ -4739,7 +4739,7 @@ public void Read(FileInfo file, uint width, uint height) /// Thrown when an error is raised by ImageMagick. public void Read(FileInfo file, MagickFormat format) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); Read(file.FullName, new MagickReadSettings(_settings) { Format = format }); } @@ -4752,7 +4752,7 @@ public void Read(FileInfo file, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(FileInfo file, IMagickReadSettings? readSettings) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); Read(file.FullName, readSettings); } @@ -4766,7 +4766,7 @@ public void Read(FileInfo file, IMagickReadSettings? readSettings) /// Thrown when an error is raised by ImageMagick. public void Read(IMagickColor color, uint width, uint height) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); Read("xc:" + color.ToShortString(), width, height); BackgroundColor = color; @@ -4815,8 +4815,8 @@ public void Read(string fileName) /// Thrown when an error is raised by ImageMagick. public void Read(string fileName, uint width, uint height) { - Throw.IfTrue(nameof(width), width == 0, "The width should be positive."); - Throw.IfTrue(nameof(height), height == 0, "The height should be positive."); + Throw.IfTrue(width == 0, nameof(width), "The width should be positive."); + Throw.IfTrue(height == 0, nameof(height), "The height should be positive."); var settings = new MagickReadSettings(_settings) { @@ -4905,7 +4905,7 @@ public Task ReadAsync(FileInfo file, IMagickReadSettings? readSetti /// Thrown when an error is raised by ImageMagick. public Task ReadAsync(FileInfo file, IMagickReadSettings? readSettings, CancellationToken cancellationToken) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return ReadAsync(file.FullName, readSettings, cancellationToken); } @@ -4970,7 +4970,7 @@ public Task ReadAsync(Stream stream, IMagickReadSettings? readSetti /// Thrown when an error is raised by ImageMagick. public async Task ReadAsync(Stream stream, IMagickReadSettings? readSettings, CancellationToken cancellationToken) { - Throw.IfNull(nameof(stream), stream); + Throw.IfNull(stream); var bytes = await Bytes.CreateAsync(stream, cancellationToken).ConfigureAwait(false); Read(bytes.GetData(), 0, (uint)bytes.Length, readSettings); @@ -5053,7 +5053,7 @@ public async Task ReadAsync(string fileName, IMagickReadSettings? r /// Thrown when an error is raised by ImageMagick. public void ReadPixels(byte[] data, IPixelReadSettings settings) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); ReadPixels(data, 0, (uint)data.Length, settings); } @@ -5068,19 +5068,19 @@ public void ReadPixels(byte[] data, IPixelReadSettings settings) /// Thrown when an error is raised by ImageMagick. public void ReadPixels(byte[] data, uint offset, uint count, IPixelReadSettings settings) { - Throw.IfNullOrEmpty(nameof(data), data); - Throw.IfTrue(nameof(count), count < 1, "The number of bytes should be at least 1."); - Throw.IfTrue(nameof(offset), offset >= data.Length, "The offset should not exceed the length of the array."); - Throw.IfTrue(nameof(count), offset + count > data.Length, "The number of bytes should not exceed the length of the array."); - Throw.IfNull(nameof(settings), settings); - Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); - Throw.IfTrue(nameof(settings), settings.StorageType == StorageType.Undefined, "Storage type should not be undefined."); + Throw.IfNullOrEmpty(data); + Throw.IfTrue(count < 1, nameof(count), "The number of bytes should be at least 1."); + Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); + Throw.IfTrue(offset + count > data.Length, nameof(count), "The number of bytes should not exceed the length of the array."); + Throw.IfNull(settings); + Throw.IfNullOrEmpty(settings.Mapping, nameof(settings), "Pixel storage mapping should be defined."); + Throw.IfTrue(settings.StorageType == StorageType.Undefined, nameof(settings), "Storage type should not be undefined."); var newReadSettings = CreateReadSettings(settings.ReadSettings); SetSettings(newReadSettings); var expectedLength = GetExpectedByteLength(settings); - Throw.IfTrue(nameof(count), count < expectedLength, "The count is {0} but should be at least {1}.", count, expectedLength); + Throw.IfTrue(count < expectedLength, nameof(count), "The count is {0} but should be at least {1}.", count, expectedLength); _nativeInstance.ReadPixels(settings.ReadSettings.Width!.Value, settings.ReadSettings.Height!.Value, settings.Mapping, settings.StorageType, data, offset); } @@ -5094,7 +5094,7 @@ public void ReadPixels(byte[] data, uint offset, uint count, IPixelReadSettings< /// Thrown when an error is raised by ImageMagick. public void ReadPixels(QuantumType[] data, IPixelReadSettings settings) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); ReadPixels(data, 0, (uint)data.Length, settings); } @@ -5109,19 +5109,19 @@ public void ReadPixels(QuantumType[] data, IPixelReadSettings setti /// Thrown when an error is raised by ImageMagick. public void ReadPixels(QuantumType[] data, uint offset, uint count, IPixelReadSettings settings) { - Throw.IfNullOrEmpty(nameof(data), data); - Throw.IfTrue(nameof(count), count < 1, "The number of items should be at least 1."); - Throw.IfTrue(nameof(offset), offset >= data.Length, "The offset should not exceed the length of the array."); - Throw.IfTrue(nameof(count), offset + count > data.Length, "The number of items should not exceed the length of the array."); - Throw.IfNull(nameof(settings), settings); + Throw.IfNullOrEmpty(data); + Throw.IfTrue(count < 1, nameof(count), "The number of items should be at least 1."); + Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); + Throw.IfTrue(offset + count > data.Length, nameof(count), "The number of items should not exceed the length of the array."); + Throw.IfNull(settings); Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); - Throw.IfTrue(nameof(settings), settings.StorageType != StorageType.Quantum, $"Storage type should be {nameof(StorageType.Quantum)}."); + Throw.IfTrue(settings.StorageType != StorageType.Quantum, nameof(settings), $"Storage type should be {nameof(StorageType.Quantum)}."); var newReadSettings = CreateReadSettings(settings.ReadSettings); SetSettings(newReadSettings); var expectedLength = GetExpectedLength(settings); - Throw.IfTrue(nameof(count), count < expectedLength, "The count is {0} but should be at least {1}.", count, expectedLength); + Throw.IfTrue(count, nameof(count), count < expectedLength, "The count is {0} but should be at least {1}.", expectedLength); var offsetInBytes = ToByteCount(settings.StorageType, offset); @@ -5137,7 +5137,7 @@ public void ReadPixels(QuantumType[] data, uint offset, uint count, IPixelReadSe /// Thrown when an error is raised by ImageMagick. public void ReadPixels(FileInfo file, IPixelReadSettings settings) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); ReadPixels(file.FullName, settings); } @@ -5150,7 +5150,7 @@ public void ReadPixels(FileInfo file, IPixelReadSettings settings) /// Thrown when an error is raised by ImageMagick. public void ReadPixels(Stream stream, IPixelReadSettings settings) { - Throw.IfNullOrEmpty(nameof(stream), stream); + Throw.IfNullOrEmpty(stream); var bytes = Bytes.Create(stream); ReadPixels(bytes.GetData(), 0, (uint)bytes.Length, settings); @@ -5191,7 +5191,7 @@ public Task ReadPixelsAsync(FileInfo file, IPixelReadSettings setti /// Thrown when an error is raised by ImageMagick. public Task ReadPixelsAsync(FileInfo file, IPixelReadSettings settings, CancellationToken cancellationToken) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return ReadPixelsAsync(file.FullName, settings, cancellationToken); } @@ -5216,7 +5216,7 @@ public Task ReadPixelsAsync(Stream stream, IPixelReadSettings setti /// Thrown when an error is raised by ImageMagick. public async Task ReadPixelsAsync(Stream stream, IPixelReadSettings settings, CancellationToken cancellationToken) { - Throw.IfNullOrEmpty(nameof(stream), stream); + Throw.IfNullOrEmpty(stream); var bytes = await Bytes.CreateAsync(stream, cancellationToken).ConfigureAwait(false); ReadPixels(bytes.GetData(), 0, (uint)bytes.Length, settings); @@ -5281,7 +5281,7 @@ public void RegionMask(IMagickGeometry geometry) /// Thrown when an error is raised by ImageMagick. public IMagickErrorInfo Remap(IEnumerable> colors) { - Throw.IfNull(nameof(colors), colors); + Throw.IfNull(colors); return Remap(colors, new QuantizeSettings()); } @@ -5295,7 +5295,7 @@ public IMagickErrorInfo Remap(IEnumerable> colors) /// Thrown when an error is raised by ImageMagick. public IMagickErrorInfo Remap(IEnumerable> colors, IQuantizeSettings settings) { - Throw.IfNull(nameof(colors), colors); + Throw.IfNull(colors); var colorList = new List>(colors); if (colorList.Count == 0) @@ -5327,8 +5327,8 @@ public IMagickErrorInfo Remap(IMagickImage image) /// Thrown when an error is raised by ImageMagick. public IMagickErrorInfo Remap(IMagickImage image, IQuantizeSettings settings) { - Throw.IfNull(nameof(image), image); - Throw.IfNull(nameof(settings), settings); + Throw.IfNull(image); + Throw.IfNull(settings); if (_nativeInstance.Remap(image, settings)) return new MagickErrorInfo(); @@ -5362,7 +5362,7 @@ public void RemoveRegionMask() /// The profile to remove. public void RemoveProfile(IImageProfile profile) { - Throw.IfNull(nameof(profile), profile); + Throw.IfNull(profile); RemoveProfile(profile.Name); } @@ -5373,7 +5373,7 @@ public void RemoveProfile(IImageProfile profile) /// The name of the profile (e.g. "ICM", "IPTC", or a generic profile name). public void RemoveProfile(string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); _nativeInstance.RemoveProfile(name); } @@ -5749,8 +5749,8 @@ public void SepiaTone(Percentage threshold) /// Thrown when an error is raised by ImageMagick. public void SetArtifact(string name, string value) { - Throw.IfNullOrEmpty(nameof(name), name); - Throw.IfNull(nameof(value), value); + Throw.IfNullOrEmpty(name); + Throw.IfNull(value); _nativeInstance.SetArtifact(name, value); } @@ -5763,7 +5763,7 @@ public void SetArtifact(string name, string value) /// Thrown when an error is raised by ImageMagick. public void SetArtifact(string name, bool flag) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); _nativeInstance.SetArtifact(name, flag ? "true" : "false"); } @@ -5783,8 +5783,8 @@ public void SetAttenuate(double attenuate) /// Thrown when an error is raised by ImageMagick. public void SetAttribute(string name, string value) { - Throw.IfNullOrEmpty(nameof(name), name); - Throw.IfNull(nameof(value), value); + Throw.IfNullOrEmpty(name); + Throw.IfNull(value); _nativeInstance.SetAttribute(name, value); } @@ -5797,7 +5797,7 @@ public void SetAttribute(string name, string value) /// Thrown when an error is raised by ImageMagick. public void SetAttribute(string name, bool flag) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); _nativeInstance.SetAttribute(name, flag ? "true" : "false"); } @@ -5844,7 +5844,7 @@ public void SetClippingPath(string value, string pathName) /// Thrown when an error is raised by ImageMagick. public void SetColormapColor(int index, IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); _nativeInstance.SetColormapColor((nuint)index, color); } @@ -5864,7 +5864,7 @@ public void SetCompression(CompressionMethod compression) /// Thrown when an error is raised by ImageMagick. public void SetProfile(IImageProfile profile) { - Throw.IfNull(nameof(profile), profile); + Throw.IfNull(profile); var datum = profile.ToByteArray(); if (datum is null || datum.Length == 0) @@ -5889,7 +5889,7 @@ public void SetProfile(IColorProfile profile) /// Thrown when an error is raised by ImageMagick. public void SetProfile(IColorProfile profile, ColorTransformMode mode) { - Throw.IfNull(nameof(profile), profile); + Throw.IfNull(profile); var datum = profile.ToByteArray(); if (datum is null || datum.Length == 0) @@ -5910,7 +5910,7 @@ public void SetProfile(IColorProfile profile, ColorTransformMode mode) /// Thrown when an error is raised by ImageMagick. public void SetReadMask(IMagickImage image) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); _nativeInstance.SetReadMask(image); } @@ -5924,7 +5924,7 @@ public void SetReadMask(IMagickImage image) /// Thrown when an error is raised by ImageMagick.z public void SetWriteMask(IMagickImage image) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); _nativeInstance.SetWriteMask(image); } @@ -6450,7 +6450,7 @@ public void Swirl(PixelInterpolateMethod method, double degrees) /// Thrown when an error is raised by ImageMagick. public IMagickSearchResult? SubImageSearch(IMagickImage image, ErrorMetric metric, double similarityThreshold) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); var result = _nativeInstance.SubImageSearch(image, metric, similarityThreshold, out var rectangle, out var similarityMetric); if (result == IntPtr.Zero) @@ -6467,7 +6467,7 @@ public void Swirl(PixelInterpolateMethod method, double degrees) /// Thrown when an error is raised by ImageMagick. public void Texture(IMagickImage image) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); _nativeInstance.Texture(image); } @@ -6556,7 +6556,7 @@ public void Tile(IMagickImage image, CompositeOperator compose) /// Thrown when an error is raised by ImageMagick. public void Tile(IMagickImage image, CompositeOperator compose, string? args) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); for (var y = 0; y < Height; y += (int)image.Height) { @@ -6681,7 +6681,7 @@ public bool TransformColorSpace(IColorProfile target) /// True when the colorspace was transformed otherwise false. public bool TransformColorSpace(IColorProfile target, ColorTransformMode mode) { - Throw.IfNull(nameof(target), target); + Throw.IfNull(target); if (!HasColorProfile) return false; @@ -6713,8 +6713,8 @@ public bool TransformColorSpace(IColorProfile source, IColorProfile target) /// True when the colorspace was transformed otherwise false. public bool TransformColorSpace(IColorProfile source, IColorProfile target, ColorTransformMode mode) { - Throw.IfNull(nameof(source), source); - Throw.IfNull(nameof(target), target); + Throw.IfNull(source); + Throw.IfNull(target); if (source.ColorSpace != ColorSpace) return false; @@ -6734,7 +6734,7 @@ public bool TransformColorSpace(IColorProfile source, IColorProfile target, Colo /// Thrown when an error is raised by ImageMagick. public void Transparent(IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); _nativeInstance.Transparent(color, false); } @@ -6748,8 +6748,8 @@ public void Transparent(IMagickColor color) /// Thrown when an error is raised by ImageMagick. public void TransparentChroma(IMagickColor colorLow, IMagickColor colorHigh) { - Throw.IfNull(nameof(colorLow), colorLow); - Throw.IfNull(nameof(colorHigh), colorHigh); + Throw.IfNull(colorLow); + Throw.IfNull(colorHigh); _nativeInstance.TransparentChroma(colorLow, colorHigh, false); } @@ -7037,7 +7037,7 @@ public void WhiteThreshold(Percentage threshold) /// Thrown when an error is raised by ImageMagick. public void WhiteThreshold(Percentage threshold, Channels channels) { - Throw.IfNegative(nameof(threshold), threshold); + Throw.IfNegative(threshold); _nativeInstance.WhiteThreshold(threshold.ToString(), channels); } @@ -7049,7 +7049,7 @@ public void WhiteThreshold(Percentage threshold, Channels channels) /// Thrown when an error is raised by ImageMagick. public void Write(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); Write(file.FullName); file.Refresh(); @@ -7086,7 +7086,7 @@ public void Write(FileInfo file, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Write(Stream stream) { - Throw.IfNull(nameof(stream), stream); + Throw.IfNull(stream); _settings.FileName = null; @@ -7189,7 +7189,7 @@ public Task WriteAsync(FileInfo file) /// Thrown when an error is raised by ImageMagick. public Task WriteAsync(FileInfo file, CancellationToken cancellationToken) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); var format = EnumHelper.ParseMagickFormatFromExtension(file); var bytes = format != MagickFormat.Unknown ? ToByteArray(format) : ToByteArray(); @@ -7240,7 +7240,7 @@ public Task WriteAsync(FileInfo file, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public Task WriteAsync(FileInfo file, MagickFormat format, CancellationToken cancellationToken) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); var bytes = ToByteArray(format); return FileHelper.WriteAllBytesAsync(file.FullName, bytes, cancellationToken); @@ -7264,7 +7264,7 @@ public Task WriteAsync(Stream stream) /// Thrown when an error is raised by ImageMagick. public Task WriteAsync(Stream stream, CancellationToken cancellationToken) { - Throw.IfNull(nameof(stream), stream); + Throw.IfNull(stream); var bytes = ToByteArray(); return stream.WriteAsync(bytes, 0, bytes.Length, cancellationToken); @@ -7491,8 +7491,8 @@ private static uint GetExpectedLength(IPixelImportSettings settings) private static uint GetExpectedLength(IPixelReadSettings settings) { - Throw.IfNull(nameof(settings), settings.ReadSettings.Width, "ReadSettings.Width should be defined"); - Throw.IfNull(nameof(settings), settings.ReadSettings.Height, "ReadSettings.Height should be defined."); + Throw.IfNull(settings.ReadSettings.Width, nameof(settings), "ReadSettings.Width should be defined"); + Throw.IfNull(settings.ReadSettings.Height, nameof(settings), "ReadSettings.Height should be defined."); return settings.ReadSettings.Width.Value * settings.ReadSettings.Height.Value * (uint)settings.Mapping!.Length; } @@ -7584,7 +7584,7 @@ private void FloodFill(QuantumType alpha, int x, int y, bool invert) private void FloodFill(IMagickColor color, int x, int y, bool invert) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); IMagickColor? target; using var pixels = GetPixelsUnsafe(); @@ -7596,8 +7596,8 @@ private void FloodFill(IMagickColor color, int x, int y, bool inver private void FloodFill(IMagickColor color, int x, int y, IMagickColor target, bool invert) { - Throw.IfNull(nameof(color), color); - Throw.IfNull(nameof(target), target); + Throw.IfNull(color); + Throw.IfNull(target); var settings = _settings.Drawing; @@ -7614,7 +7614,7 @@ private void FloodFill(IMagickColor color, int x, int y, IMagickCol private void FloodFill(IMagickImage image, int x, int y, bool invert) { - Throw.IfNull(nameof(image), image); + Throw.IfNull(image); IMagickColor? target; using var pixels = GetPixelsUnsafe(); @@ -7626,8 +7626,8 @@ private void FloodFill(IMagickImage image, int x, int y, bool inver private void FloodFill(IMagickImage image, int x, int y, IMagickColor target, bool invert) { - Throw.IfNull(nameof(image), image); - Throw.IfNull(nameof(target), target); + Throw.IfNull(image); + Throw.IfNull(target); var settings = _settings.Drawing; @@ -7647,16 +7647,16 @@ private void LevelColors(IMagickColor blackColor, IMagickColor blackColor, IMagickColor whiteColor, Channels channels, bool invert) { - Throw.IfNull(nameof(blackColor), blackColor); - Throw.IfNull(nameof(whiteColor), whiteColor); + Throw.IfNull(blackColor); + Throw.IfNull(whiteColor); _nativeInstance.LevelColors(blackColor, whiteColor, channels, invert); } private void Opaque(IMagickColor target, IMagickColor fill, bool invert) { - Throw.IfNull(nameof(target), target); - Throw.IfNull(nameof(fill), fill); + Throw.IfNull(target); + Throw.IfNull(fill); _nativeInstance.Opaque(target, fill, invert); } @@ -7707,7 +7707,7 @@ private void Read(byte[] data, nuint offset, nuint length, IMagickReadSettings? readSettings, bool ping) { - Throw.IfNullOrEmpty(nameof(stream), stream); + Throw.IfNullOrEmpty(stream); var bytes = Bytes.FromStreamBuffer(stream); if (bytes is not null) diff --git a/src/Magick.NET/MagickImageCollection.cs b/src/Magick.NET/MagickImageCollection.cs index 81e90cf05a..8b068f5076 100644 --- a/src/Magick.NET/MagickImageCollection.cs +++ b/src/Magick.NET/MagickImageCollection.cs @@ -260,7 +260,7 @@ IEnumerator IEnumerable.GetEnumerator() /// The image to add. public void Add(IMagickImage item) { - Throw.IfNull(nameof(item), item); + Throw.IfNull(item); CheckDuplicate(item); @@ -291,7 +291,7 @@ public void AddRange(byte[] data) /// Thrown when an error is raised by ImageMagick. public void AddRange(byte[] data, IMagickReadSettings? readSettings) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); AddImages(data, 0, (uint)data.Length, readSettings, false); } @@ -303,8 +303,8 @@ public void AddRange(byte[] data, IMagickReadSettings? readSettings /// Thrown when an error is raised by ImageMagick. public void AddRange(IEnumerable> images) { - Throw.IfNull(nameof(images), images); - Throw.IfTrue(nameof(images), images is MagickImageCollection, "Not allowed to add collection."); + Throw.IfNull(images); + Throw.IfTrue(images is MagickImageCollection, nameof(images), "Not allowed to add collection."); foreach (var image in images) { @@ -440,7 +440,7 @@ public IMagickImage Combine(ColorSpace colorSpace) /// Thrown when an error is raised by ImageMagick. public void Complex(IComplexSettings complexSettings) { - Throw.IfNull(nameof(complexSettings), complexSettings); + Throw.IfNull(complexSettings); using var imageAttacher = new TemporaryImageAttacher(_images); using var temporaryDefines = new TemporaryDefines(_images[0]); @@ -470,9 +470,9 @@ public void CopyTo(IMagickImage[] array, int arrayIndex) if (_images.Count == 0) return; - Throw.IfNull(nameof(array), array); - Throw.IfOutOfRange(nameof(arrayIndex), arrayIndex, (uint)_images.Count); - Throw.IfOutOfRange(nameof(arrayIndex), arrayIndex, (uint)array.Length); + Throw.IfNull(array); + Throw.IfOutOfRange(arrayIndex, (uint)_images.Count); + Throw.IfOutOfRange(arrayIndex, (uint)array.Length); var indexI = 0; var indexA = arrayIndex; @@ -569,7 +569,7 @@ public IMagickImage Fx(string expression) /// Thrown when an error is raised by ImageMagick. public IMagickImage Fx(string expression, Channels channels) { - Throw.IfNullOrEmpty(nameof(expression), expression); + Throw.IfNullOrEmpty(expression); using var imageAttacher = new TemporaryImageAttacher(_images); var nativeImage = MagickImage.GetNativeImage(_images[0]); @@ -629,7 +629,7 @@ public IMagickImage Merge() /// Thrown when an error is raised by ImageMagick. public IMagickImage Montage(IMontageSettings settings) { - Throw.IfNull(nameof(settings), settings); + Throw.IfNull(settings); if (!string.IsNullOrEmpty(settings.Label)) _images[0].Label = settings.Label; @@ -739,10 +739,10 @@ public void Ping(byte[] data, uint offset, uint count) /// Thrown when an error is raised by ImageMagick. public void Ping(byte[] data, uint offset, uint count, IMagickReadSettings? readSettings) { - Throw.IfNullOrEmpty(nameof(data), data); - Throw.IfTrue(nameof(count), count < 1, "The number of bytes should be at least 1."); - Throw.IfTrue(nameof(offset), offset >= data.Length, "The offset should not exceed the length of the array."); - Throw.IfTrue(nameof(count), offset + count > data.Length, "The number of bytes should not exceed the length of the array."); + Throw.IfNullOrEmpty(data); + Throw.IfTrue(count < 1, nameof(count), "The number of bytes should be at least 1."); + Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); + Throw.IfTrue(offset + count > data.Length, nameof(count), "The number of bytes should not exceed the length of the array."); Clear(); AddImages(data, offset, count, readSettings, true); @@ -756,7 +756,7 @@ public void Ping(byte[] data, uint offset, uint count, IMagickReadSettingsThrown when an error is raised by ImageMagick. public void Ping(byte[] data, IMagickReadSettings? readSettings) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); Clear(); AddImages(data, 0, (uint)data.Length, readSettings, true); @@ -778,7 +778,7 @@ public void Ping(FileInfo file) /// Thrown when an error is raised by ImageMagick. public void Ping(FileInfo file, IMagickReadSettings? readSettings) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); Ping(file.FullName, readSettings); } @@ -832,7 +832,7 @@ public void Ping(string fileName, IMagickReadSettings? readSettings /// corresponding terms (coefficient and degree pairs). public IMagickImage Polynomial(double[] terms) { - Throw.IfNullOrEmpty(nameof(terms), terms); + Throw.IfNullOrEmpty(terms); using var imageAttacher = new TemporaryImageAttacher(_images); var image = _nativeInstance.Polynomial(_images[0], terms, (nuint)terms.Length); @@ -855,8 +855,8 @@ public void Remap(IMagickImage image) /// Thrown when an error is raised by ImageMagick. public void Remap(IMagickImage image, IQuantizeSettings settings) { - Throw.IfNull(nameof(image), image); - Throw.IfNull(nameof(settings), settings); + Throw.IfNull(image); + Throw.IfNull(settings); using var imageAttacher = new TemporaryImageAttacher(_images); _nativeInstance.Remap(_images[0], settings, image); @@ -878,7 +878,7 @@ public void Remap(IMagickImage image, IQuantizeSettings settings) /// Thrown when an error is raised by ImageMagick. public IMagickErrorInfo? Quantize(IQuantizeSettings settings) { - Throw.IfNull(nameof(settings), settings); + Throw.IfNull(settings); using var imageAttacher = new TemporaryImageAttacher(_images); _nativeInstance.Quantize(_images[0], settings); @@ -928,10 +928,10 @@ public void Read(byte[] data, uint offset, uint count, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(byte[] data, uint offset, uint count, IMagickReadSettings? readSettings) { - Throw.IfNullOrEmpty(nameof(data), data); - Throw.IfTrue(nameof(count), count < 1, "The number of bytes should be at least 1."); - Throw.IfTrue(nameof(offset), offset >= data.Length, "The offset should not exceed the length of the array."); - Throw.IfTrue(nameof(count), offset + count > data.Length, "The number of bytes should not exceed the length of the array."); + Throw.IfNullOrEmpty(data); + Throw.IfTrue(count < 1, nameof(count), "The number of bytes should be at least 1."); + Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); + Throw.IfTrue(offset + count > data.Length, nameof(count), "The number of bytes should not exceed the length of the array."); Clear(); AddImages(data, offset, count, readSettings, false); @@ -954,7 +954,7 @@ public void Read(byte[] data, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(byte[] data, IMagickReadSettings? readSettings) { - Throw.IfNullOrEmpty(nameof(data), data); + Throw.IfNullOrEmpty(data); Clear(); AddImages(data, 0, (uint)data.Length, readSettings, false); @@ -985,7 +985,7 @@ public void Read(FileInfo file, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(FileInfo file, IMagickReadSettings? readSettings) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); Read(file.FullName, readSettings); } @@ -1087,7 +1087,7 @@ public Task ReadAsync(FileInfo file, IMagickReadSettings? readSetti /// Thrown when an error is raised by ImageMagick. public Task ReadAsync(FileInfo file, IMagickReadSettings? readSettings, CancellationToken cancellationToken) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return ReadAsync(file.FullName, readSettings, cancellationToken); } @@ -1402,7 +1402,7 @@ public void TrimBounds() /// Thrown when an error is raised by ImageMagick. public void Write(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); Write(file.FullName); file.Refresh(); @@ -1442,7 +1442,7 @@ public void Write(FileInfo file, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Write(Stream stream) { - Throw.IfNull(nameof(stream), stream); + Throw.IfNull(stream); if (_images.Count == 0) return; @@ -1562,7 +1562,7 @@ public Task WriteAsync(FileInfo file) /// Thrown when an error is raised by ImageMagick. public Task WriteAsync(FileInfo file, CancellationToken cancellationToken) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); if (_images.Count == 0) return Task.CompletedTask; @@ -1619,7 +1619,7 @@ public Task WriteAsync(FileInfo file, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public Task WriteAsync(FileInfo file, MagickFormat format, CancellationToken cancellationToken) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); if (_images.Count == 0) return Task.CompletedTask; @@ -1647,7 +1647,7 @@ public Task WriteAsync(Stream stream) /// Thrown when an error is raised by ImageMagick. public async Task WriteAsync(Stream stream, CancellationToken cancellationToken) { - Throw.IfNull(nameof(stream), stream); + Throw.IfNull(stream); if (_images.Count == 0) return; @@ -1835,7 +1835,7 @@ private void AddImages(string fileName, IMagickReadSettings? readSe private void AddImages(Stream stream, IMagickReadSettings? readSettings, bool ping) { - Throw.IfNullOrEmpty(nameof(stream), stream); + Throw.IfNullOrEmpty(stream); var bytes = Bytes.FromStreamBuffer(stream); if (bytes is not null) @@ -1915,7 +1915,7 @@ private void OnWarning(object? sender, WarningEventArgs arguments) private void SetDefines(IWriteDefines defines) { - Throw.IfNull(nameof(defines), defines); + Throw.IfNull(defines); foreach (var image in _images) { diff --git a/src/Magick.NET/MagickImageInfo.cs b/src/Magick.NET/MagickImageInfo.cs index 9edfcd64d5..6ba3946f7d 100644 --- a/src/Magick.NET/MagickImageInfo.cs +++ b/src/Magick.NET/MagickImageInfo.cs @@ -262,7 +262,7 @@ public static IEnumerable ReadCollection(FileInfo file) /// Thrown when an error is raised by ImageMagick. public static IEnumerable ReadCollection(FileInfo file, IMagickReadSettings? readSettings) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); return ReadCollection(file.FullName, readSettings); } diff --git a/src/Magick.NET/MagickNET.cs b/src/Magick.NET/MagickNET.cs index bc616bef2c..21531e4fe5 100644 --- a/src/Magick.NET/MagickNET.cs +++ b/src/Magick.NET/MagickNET.cs @@ -205,7 +205,7 @@ string IMagickNET.Version /// The environment variable with the specified name. public static string? GetEnvironmentVariable(string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); return Environment.GetEnv(name); } @@ -236,7 +236,7 @@ public static void Initialize(string path) /// The path of the folder that was created and contains the configuration files. public static string Initialize(IConfigurationFiles configFiles) { - Throw.IfNull(nameof(configFiles), configFiles); + Throw.IfNull(configFiles); var path = Path.Combine(TemporaryDirectory, Guid.NewGuid().ToString()); Directory.CreateDirectory(path); @@ -253,7 +253,7 @@ public static string Initialize(IConfigurationFiles configFiles) /// The directory to save the configuration files in. public static void Initialize(IConfigurationFiles configFiles, string path) { - Throw.IfNull(nameof(configFiles), configFiles); + Throw.IfNull(configFiles); var newPath = FileHelper.GetFullPath(path); @@ -272,7 +272,7 @@ public static void ResetRandomSeed() /// The file to use at the default font file. public static void SetDefaultFontFile(FileInfo file) { - Throw.IfNull(nameof(file), file); + Throw.IfNull(file); SetDefaultFontFile(file.FullName); } @@ -283,7 +283,7 @@ public static void SetDefaultFontFile(FileInfo file) /// The file name to use at the default font file. public static void SetDefaultFontFile(string fileName) { - Throw.IfNullOrEmpty(nameof(fileName), fileName); + Throw.IfNullOrEmpty(fileName); NativeMagickNET.SetDefaultFontFile(fileName); } @@ -295,7 +295,7 @@ public static void SetDefaultFontFile(string fileName) /// The value of the environment variable. public static void SetEnvironmentVariable(string name, string value) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); Environment.SetEnv(name, value); } diff --git a/src/Magick.NET/Matrices/ConvolveMatrix.cs b/src/Magick.NET/Matrices/ConvolveMatrix.cs index 79146adc6c..fbb4e2b22f 100644 --- a/src/Magick.NET/Matrices/ConvolveMatrix.cs +++ b/src/Magick.NET/Matrices/ConvolveMatrix.cs @@ -30,5 +30,5 @@ public ConvolveMatrix(uint order, params double[] values) } private static void CheckOrder(uint order) - => Throw.IfTrue(nameof(order), order % 2 == 0, "Order must be an odd number."); + => Throw.IfTrue(order % 2 == 0, nameof(order), "Order must be an odd number."); } diff --git a/src/Magick.NET/Matrices/DoubleMatrix.cs b/src/Magick.NET/Matrices/DoubleMatrix.cs index 63d90f04ef..fd981df22c 100644 --- a/src/Magick.NET/Matrices/DoubleMatrix.cs +++ b/src/Magick.NET/Matrices/DoubleMatrix.cs @@ -19,7 +19,7 @@ public abstract partial class DoubleMatrix /// The values to initialize the matrix with. protected DoubleMatrix(uint order, double[]? values) { - Throw.IfTrue(nameof(order), order < 1, "Invalid order specified, value has to be at least 1."); + Throw.IfTrue(order < 1, nameof(order), "Invalid order specified, value has to be at least 1."); Order = order; @@ -63,9 +63,9 @@ public double GetValue(int x, int y) /// The values. public void SetColumn(int x, params double[] values) { - Throw.IfOutOfRange(nameof(x), x, Order); - Throw.IfNull(nameof(values), values); - Throw.IfTrue(nameof(values), values.Length != Order, "Invalid length"); + Throw.IfOutOfRange(x, Order); + Throw.IfNull(values); + Throw.IfTrue(values.Length != Order, nameof(values), "Invalid length"); for (var y = 0; y < Order; y++) { @@ -80,9 +80,9 @@ public void SetColumn(int x, params double[] values) /// The values. public void SetRow(int y, params double[] values) { - Throw.IfOutOfRange(nameof(y), y, Order); - Throw.IfNull(nameof(values), values); - Throw.IfTrue(nameof(values), values.Length != Order, "Invalid length"); + Throw.IfOutOfRange(y, Order); + Throw.IfNull(values); + Throw.IfTrue(values.Length != Order, nameof(values), "Invalid length"); for (var x = 0; x < Order; x++) { @@ -111,8 +111,8 @@ private static INativeInstance CreateNativeInstance(IDoubleMatrix instance) private int GetIndex(int x, int y) { - Throw.IfOutOfRange(nameof(x), x, Order); - Throw.IfOutOfRange(nameof(y), y, Order); + Throw.IfOutOfRange(x, Order); + Throw.IfOutOfRange(y, Order); return (y * (int)Order) + x; } diff --git a/src/Magick.NET/Matrices/MagickColorMatrix.cs b/src/Magick.NET/Matrices/MagickColorMatrix.cs index f5aeace2ef..1728bc7b6b 100644 --- a/src/Magick.NET/Matrices/MagickColorMatrix.cs +++ b/src/Magick.NET/Matrices/MagickColorMatrix.cs @@ -30,5 +30,5 @@ public MagickColorMatrix(uint order, params double[] values) } private static void CheckOrder(uint order) - => Throw.IfTrue(nameof(order), order > 6, "Invalid order specified, range 1-6."); + => Throw.IfTrue(order > 6, nameof(order), "Invalid order specified, range 1-6."); } diff --git a/src/Magick.NET/Pixels/Pixel.cs b/src/Magick.NET/Pixels/Pixel.cs index 5e2e3d7734..a62a83341f 100644 --- a/src/Magick.NET/Pixels/Pixel.cs +++ b/src/Magick.NET/Pixels/Pixel.cs @@ -32,7 +32,7 @@ public sealed class Pixel : IPixel /// The value of the pixel. public Pixel(int x, int y, QuantumType[] value) { - Throw.IfNull(nameof(value), value); + Throw.IfNull(value); CheckChannels(value.Length); @@ -238,7 +238,7 @@ internal static Pixel Create(PixelCollection collection, int x, int y, QuantumTy => new Pixel(collection, x, y, value); private static void CheckChannels(int channels) - => Throw.IfTrue(nameof(channels), channels < 1 || channels > 5, "Invalid number of channels (supported sizes are 1-5)."); + => Throw.IfTrue(channels < 1 || channels > 5, nameof(channels), "Invalid number of channels (supported sizes are 1-5)."); private QuantumType[] GetValueWithoutIndexChannel() { diff --git a/src/Magick.NET/Pixels/SafePixelCollection.cs b/src/Magick.NET/Pixels/SafePixelCollection.cs index 199f30e943..c2069b286e 100644 --- a/src/Magick.NET/Pixels/SafePixelCollection.cs +++ b/src/Magick.NET/Pixels/SafePixelCollection.cs @@ -24,7 +24,7 @@ public SafePixelCollection(MagickImage image) public override QuantumType[]? GetArea(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); return base.GetArea(geometry); } @@ -58,7 +58,7 @@ public override void SetArea(int x, int y, uint width, uint height, QuantumType[ public override void SetArea(IMagickGeometry geometry, QuantumType[] values) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); base.SetArea(geometry, values); } @@ -71,7 +71,7 @@ public override void SetByteArea(int x, int y, uint width, uint height, byte[] v public override void SetByteArea(IMagickGeometry geometry, byte[] values) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); base.SetByteArea(geometry, values); } @@ -90,7 +90,7 @@ public override void SetDoubleArea(int x, int y, uint width, uint height, double public override void SetDoubleArea(IMagickGeometry geometry, double[] values) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); base.SetDoubleArea(geometry, values); } @@ -109,7 +109,7 @@ public override void SetIntArea(int x, int y, uint width, uint height, int[] val public override void SetIntArea(IMagickGeometry geometry, int[] values) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); base.SetIntArea(geometry, values); } @@ -122,21 +122,21 @@ public override void SetIntPixels(int[] values) public override void SetPixel(int x, int y, QuantumType[] value) { - Throw.IfNullOrEmpty(nameof(value), value); + Throw.IfNullOrEmpty(value); SetPixelPrivate(x, y, value); } public override void SetPixel(IPixel pixel) { - Throw.IfNull(nameof(pixel), pixel); + Throw.IfNull(pixel); SetPixelPrivate(pixel.X, pixel.Y, pixel.ToArray()); } public override void SetPixel(IEnumerable> pixels) { - Throw.IfNull(nameof(pixels), pixels); + Throw.IfNull(pixels); base.SetPixel(pixels); } @@ -149,21 +149,21 @@ public override void SetPixels(QuantumType[] values) public override byte[]? ToByteArray(IMagickGeometry geometry, string mapping) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); return base.ToByteArray(geometry, mapping); } public override byte[]? ToByteArray(IMagickGeometry geometry, PixelMapping mapping) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); return base.ToByteArray(geometry, mapping.ToString()); } public override byte[]? ToByteArray(int x, int y, uint width, uint height, string mapping) { - Throw.IfNullOrEmpty(nameof(mapping), mapping); + Throw.IfNullOrEmpty(mapping); CheckArea(x, y, width, height); return base.ToByteArray(x, y, width, height, mapping); @@ -171,14 +171,14 @@ public override void SetPixels(QuantumType[] values) public override ushort[]? ToShortArray(IMagickGeometry geometry, string mapping) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); return base.ToShortArray(geometry, mapping); } public override ushort[]? ToShortArray(int x, int y, uint width, uint height, string mapping) { - Throw.IfNullOrEmpty(nameof(mapping), mapping); + Throw.IfNullOrEmpty(mapping); CheckArea(x, y, width, height); return base.ToShortArray(x, y, width, height, mapping); @@ -187,14 +187,14 @@ public override void SetPixels(QuantumType[] values) private void CheckArea(int x, int y, uint width, uint height) { CheckIndex(x, y); - Throw.IfOutOfRange(nameof(width), 1, (int)Image.Width - x, (int)width, "Invalid width: {0}.", width); - Throw.IfOutOfRange(nameof(height), 1, (int)Image.Height - y, (int)height, "Invalid height: {0}.", height); + Throw.IfOutOfRange(1, (int)Image.Width - x, (int)width, "Invalid width: {0}.", width); + Throw.IfOutOfRange(1, (int)Image.Height - y, (int)height, "Invalid height: {0}.", height); } private void CheckIndex(int x, int y) { - Throw.IfOutOfRange(nameof(x), 0, (int)Image.Width - 1, x, "Invalid X coordinate: {0}.", x); - Throw.IfOutOfRange(nameof(y), 0, (int)Image.Height - 1, y, "Invalid Y coordinate: {0}.", y); + Throw.IfOutOfRange(0, (int)Image.Width - 1, x, "Invalid X coordinate: {0}.", x); + Throw.IfOutOfRange(0, (int)Image.Height - 1, y, "Invalid Y coordinate: {0}.", y); } private void CheckValues(T[] values) @@ -206,16 +206,16 @@ private void CheckValues(int x, int y, T[] values) private void CheckValues(int x, int y, uint width, uint height, T[] values) { CheckIndex(x, y); - Throw.IfNullOrEmpty(nameof(values), values); + Throw.IfNullOrEmpty(values); Throw.IfFalse(nameof(values), values.Length % Channels == 0, "Values should have {0} channels.", Channels); var length = values.Length; var max = width * height * Channels; - Throw.IfTrue(nameof(values), length > max, "Too many values specified."); + Throw.IfTrue(length > max, nameof(values), "Too many values specified."); length = (x * y * (int)Channels) + length; max = Image.Width * Image.Height * Channels; - Throw.IfTrue(nameof(values), length > max, "Too many values specified."); + Throw.IfTrue(length > max, nameof(values), "Too many values specified."); } private void SetPixelPrivate(int x, int y, QuantumType[] value) diff --git a/src/Magick.NET/ResourceLimits.cs b/src/Magick.NET/ResourceLimits.cs index 86317ebd5f..ec580dddf8 100644 --- a/src/Magick.NET/ResourceLimits.cs +++ b/src/Magick.NET/ResourceLimits.cs @@ -224,7 +224,7 @@ ulong IResourceLimits.Width /// The percentage to use. public static void LimitMemory(Percentage percentage) { - Throw.IfOutOfRange(nameof(percentage), percentage); + Throw.IfOutOfRange(percentage); NativeResourceLimits.LimitMemory((double)percentage / 100.0); } diff --git a/src/Magick.NET/Settings/MagickSettings.cs b/src/Magick.NET/Settings/MagickSettings.cs index 0e98a09062..fb9065963b 100644 --- a/src/Magick.NET/Settings/MagickSettings.cs +++ b/src/Magick.NET/Settings/MagickSettings.cs @@ -467,7 +467,7 @@ public IMagickColor? TextUnderColor /// The value of a format-specific option. public string? GetDefine(MagickFormat format, string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); return GetOption(ParseDefine(format, name)); } @@ -479,7 +479,7 @@ public IMagickColor? TextUnderColor /// The value of a format-specific option. public string? GetDefine(string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); return GetOption(name); } @@ -491,7 +491,7 @@ public IMagickColor? TextUnderColor /// The name of the define. public void RemoveDefine(MagickFormat format, string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); var key = ParseDefine(format, name); if (_options.ContainsKey(key)) @@ -504,7 +504,7 @@ public void RemoveDefine(MagickFormat format, string name) /// The name of the define. public void RemoveDefine(string name) { - Throw.IfNullOrEmpty(nameof(name), name); + Throw.IfNullOrEmpty(name); if (_options.ContainsKey(name)) _options.Remove(name); @@ -536,8 +536,8 @@ public void SetDefine(MagickFormat format, string name, int value) /// The value of the option. public void SetDefine(MagickFormat format, string name, string value) { - Throw.IfNullOrEmpty(nameof(name), name); - Throw.IfNull(nameof(value), value); + Throw.IfNullOrEmpty(name); + Throw.IfNull(value); SetOption(ParseDefine(format, name), value); } @@ -549,8 +549,8 @@ public void SetDefine(MagickFormat format, string name, string value) /// The value of the option. public void SetDefine(string name, string value) { - Throw.IfNullOrEmpty(nameof(name), name); - Throw.IfNull(nameof(value), value); + Throw.IfNullOrEmpty(name); + Throw.IfNull(value); SetOption(name, value); } @@ -561,7 +561,7 @@ public void SetDefine(string name, string value) /// The defines to set. public void SetDefines(IDefines defines) { - Throw.IfNull(nameof(defines), defines); + Throw.IfNull(defines); foreach (var define in defines.Defines) { @@ -623,7 +623,7 @@ protected void CopyFrom(MagickSettings settings) /// The value of the option. protected string? GetOption(string key) { - Throw.IfNullOrEmpty(nameof(key), key); + Throw.IfNullOrEmpty(key); if (_options.TryGetValue(key, out var result)) return result; diff --git a/src/Magick.NET/Statistics/ChannelMoments.cs b/src/Magick.NET/Statistics/ChannelMoments.cs index 6dfa6fb0f4..1568d4350c 100644 --- a/src/Magick.NET/Statistics/ChannelMoments.cs +++ b/src/Magick.NET/Statistics/ChannelMoments.cs @@ -59,7 +59,7 @@ private ChannelMoments(PixelChannel channel, NativeChannelMoments instance) /// The Hu invariants. public double HuInvariants(int index) { - Throw.IfOutOfRange(nameof(index), index, 8); + Throw.IfOutOfRange(index, 8); return _huInvariants[index]; } diff --git a/src/Magick.NET/Statistics/ChannelPerceptualHash.cs b/src/Magick.NET/Statistics/ChannelPerceptualHash.cs index 020c81e0ae..46e86f15f7 100644 --- a/src/Magick.NET/Statistics/ChannelPerceptualHash.cs +++ b/src/Magick.NET/Statistics/ChannelPerceptualHash.cs @@ -44,7 +44,7 @@ internal ChannelPerceptualHash(PixelChannel channel, ColorSpace[] colorSpaces, I /// The hu perceptual hash for the specified colorspace. public double HuPhash(ColorSpace colorSpace, int index) { - Throw.IfOutOfRange(nameof(index), index, 7); + Throw.IfOutOfRange(index, 7); if (!_huPhashes.TryGetValue(colorSpace, out var huPhashList)) { @@ -61,7 +61,7 @@ public double HuPhash(ColorSpace colorSpace, int index) /// The sum squared difference between this hash and the other hash. public double SumSquaredDistance(IChannelPerceptualHash other) { - Throw.IfNull(nameof(other), other); + Throw.IfNull(other); var sumSquaredDistance = 0.0; diff --git a/src/Magick.NET/Statistics/PerceptualHash.cs b/src/Magick.NET/Statistics/PerceptualHash.cs index 410ef97fb1..52fa58cce2 100644 --- a/src/Magick.NET/Statistics/PerceptualHash.cs +++ b/src/Magick.NET/Statistics/PerceptualHash.cs @@ -30,7 +30,7 @@ public PerceptualHash(string hash) /// The colorspaces that were used to create this hash. public PerceptualHash(string hash, params ColorSpace[] colorSpaces) { - Throw.IfNullOrEmpty(nameof(hash), hash); + Throw.IfNullOrEmpty(hash); ValidateColorSpaces(colorSpaces); var length = 35 * colorSpaces.Length; @@ -76,7 +76,7 @@ internal bool IsValid /// The sum squared difference between this hash and the other hash. public double SumSquaredDistance(IPerceptualHash other) { - Throw.IfNull(nameof(other), other); + Throw.IfNull(other); var red = other.GetChannel(PixelChannel.Red); var green = other.GetChannel(PixelChannel.Green); @@ -102,8 +102,8 @@ public override string ToString() internal static void ValidateColorSpaces(ColorSpace[] colorSpaces) { - Throw.IfNull(nameof(colorSpaces), colorSpaces); - Throw.IfOutOfRange(nameof(colorSpaces), 1, 6, colorSpaces.Length, "Invalid number of colorspaces, the minimum is 1 and the maximum is 6."); + Throw.IfNull(colorSpaces); + Throw.IfOutOfRange(1, 6, colorSpaces.Length, nameof(colorSpaces), "Invalid number of colorspaces, the minimum is 1 and the maximum is 6."); Throw.IfFalse(nameof(colorSpaces), colorSpaces.Distinct().Count() == colorSpaces.Length, "Specifying the same colorspace more than once is not allowed."); } diff --git a/src/Magick.NET/Types/MagickGeometry.cs b/src/Magick.NET/Types/MagickGeometry.cs index f9e9a121ff..02f21d0c41 100644 --- a/src/Magick.NET/Types/MagickGeometry.cs +++ b/src/Magick.NET/Types/MagickGeometry.cs @@ -87,7 +87,7 @@ public MagickGeometry(int x, int y, Percentage percentageWidth, Percentage perce /// {+-}<xoffset>{+-}<yoffset> (where width, height, xoffset, and yoffset are numbers). public MagickGeometry(string value) { - Throw.IfNullOrEmpty(nameof(value), value); + Throw.IfNullOrEmpty(value); using var instance = NativeMagickGeometry.Create(); var flags = instance.Initialize(value); @@ -238,7 +238,7 @@ public static explicit operator MagickGeometry(string value) /// A instance that represents the specified page size at 72 dpi. public static IMagickGeometry FromPageSize(string pageSize) { - Throw.IfNullOrEmpty(nameof(pageSize), pageSize); + Throw.IfNullOrEmpty(pageSize); var rectangle = MagickRectangle.FromPageSize(pageSize); if (rectangle is null) @@ -435,8 +435,8 @@ private static uint ParseUInt(string value) private void InitializeFromPercentage(int x, int y, Percentage percentageWidth, Percentage percentageHeight) { - Throw.IfNegative(nameof(percentageWidth), percentageWidth); - Throw.IfNegative(nameof(percentageHeight), percentageHeight); + Throw.IfNegative(percentageWidth); + Throw.IfNegative(percentageHeight); Initialize(x, y, (uint)percentageWidth, (uint)percentageHeight); IsPercentage = true; @@ -444,7 +444,7 @@ private void InitializeFromPercentage(int x, int y, Percentage percentageWidth, private void Initialize(NativeMagickGeometry instance, GeometryFlags flags) { - Throw.IfTrue(nameof(flags), flags == GeometryFlags.NoValue, "Invalid geometry specified."); + Throw.IfTrue(flags == GeometryFlags.NoValue, nameof(flags), "Invalid geometry specified."); X = (int)instance.X_Get(); Y = (int)instance.Y_Get(); diff --git a/src/Magick.NET/Types/MagickRectangle.cs b/src/Magick.NET/Types/MagickRectangle.cs index 024505cdc9..3a6d98e4f2 100644 --- a/src/Magick.NET/Types/MagickRectangle.cs +++ b/src/Magick.NET/Types/MagickRectangle.cs @@ -39,7 +39,7 @@ public static MagickRectangle FromGeometry(IMagickGeometry geometry, MagickImage public static MagickRectangle FromGeometry(IMagickGeometry geometry, uint imageWidth, uint imageHeight) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); var width = geometry.Width; var height = geometry.Height; diff --git a/src/Magick.NET/Types/SparseColorArg.cs b/src/Magick.NET/Types/SparseColorArg.cs index a0195aa7fb..17d5ee62eb 100644 --- a/src/Magick.NET/Types/SparseColorArg.cs +++ b/src/Magick.NET/Types/SparseColorArg.cs @@ -26,7 +26,7 @@ public sealed class SparseColorArg : ISparseColorArg /// The color. public SparseColorArg(double x, double y, IMagickColor color) { - Throw.IfNull(nameof(color), color); + Throw.IfNull(color); X = x; Y = y; diff --git a/src/Magick.NET/net8.0/Extensions/IExifProfileExtensions.cs b/src/Magick.NET/net8.0/Extensions/IExifProfileExtensions.cs index fae89c4eb3..58e2c612a4 100644 --- a/src/Magick.NET/net8.0/Extensions/IExifProfileExtensions.cs +++ b/src/Magick.NET/net8.0/Extensions/IExifProfileExtensions.cs @@ -27,7 +27,7 @@ public static class IExifProfileExtensions /// The thumbnail in the exif profile when available. public static IMagickImage? CreateThumbnail(this IExifProfile self) { - Throw.IfNull(nameof(self), self); + Throw.IfNull(self); var thumbnailLength = (int)self.ThumbnailLength; var thumbnailOffset = (int)self.ThumbnailOffset; diff --git a/src/Magick.NET/net8.0/Helpers/Throw.cs b/src/Magick.NET/net8.0/Helpers/Throw.cs index 41306099f3..88b38d47d3 100644 --- a/src/Magick.NET/net8.0/Helpers/Throw.cs +++ b/src/Magick.NET/net8.0/Helpers/Throw.cs @@ -6,18 +6,19 @@ using System; using System.Buffers; using System.Diagnostics.CodeAnalysis; +using System.Runtime.CompilerServices; namespace ImageMagick; internal static partial class Throw { - public static void IfEmpty(string paramName, [NotNull] ReadOnlySequence value) + public static void IfEmpty([NotNull] ReadOnlySequence value, [CallerArgumentExpression(nameof(value))] string? paramName = null) { if (value.IsEmpty) throw new ArgumentException("Value cannot be empty.", paramName); } - public static void IfEmpty(string paramName, [NotNull] ReadOnlySpan value) + public static void IfEmpty([NotNull] ReadOnlySpan value, [CallerArgumentExpression(nameof(value))] string? paramName = null) { if (value.IsEmpty) throw new ArgumentException("Value cannot be empty.", paramName); diff --git a/src/Magick.NET/net8.0/MagickFormatInfo.cs b/src/Magick.NET/net8.0/MagickFormatInfo.cs index a1bc6bd39d..3ef7117d13 100644 --- a/src/Magick.NET/net8.0/MagickFormatInfo.cs +++ b/src/Magick.NET/net8.0/MagickFormatInfo.cs @@ -19,7 +19,7 @@ public sealed partial class MagickFormatInfo /// The format information. public static MagickFormatInfo? Create(ReadOnlySpan data) { - Throw.IfEmpty(nameof(data), data); + Throw.IfEmpty(data); return NativeMagickFormatInfo.GetInfoWithBlob(data, (nuint)data.Length); } diff --git a/src/Magick.NET/net8.0/MagickImage.cs b/src/Magick.NET/net8.0/MagickImage.cs index 252531f5e0..c6766a422e 100644 --- a/src/Magick.NET/net8.0/MagickImage.cs +++ b/src/Magick.NET/net8.0/MagickImage.cs @@ -97,14 +97,14 @@ public MagickImage(ReadOnlySpan data, IPixelReadSettings sett /// Thrown when an error is raised by ImageMagick. public void ImportPixels(ReadOnlySpan data, IPixelImportSettings settings) { - Throw.IfEmpty(nameof(data), data); - Throw.IfNull(nameof(settings), settings); + Throw.IfEmpty(data); + Throw.IfNull(settings); Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); - Throw.IfTrue(nameof(settings), settings.StorageType == StorageType.Undefined, "Storage type should not be undefined."); + Throw.IfTrue(settings.StorageType == StorageType.Undefined, nameof(settings), "Storage type should not be undefined."); var length = data.Length; var expectedLength = GetExpectedLength(settings); - Throw.IfTrue(nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", length, expectedLength); + Throw.IfTrue(length < expectedLength, nameof(data), "The data length is {0} but should be at least {1}.", length, expectedLength); _nativeInstance.ImportPixels(settings.X, settings.Y, settings.Width, settings.Height, settings.Mapping, settings.StorageType, data, 0U); } @@ -118,14 +118,14 @@ public void ImportPixels(ReadOnlySpan data, IPixelImportSettings settings) /// Thrown when an error is raised by ImageMagick. public void ImportPixels(ReadOnlySpan data, IPixelImportSettings settings) { - Throw.IfEmpty(nameof(data), data); - Throw.IfNull(nameof(settings), settings); + Throw.IfEmpty(data); + Throw.IfNull(settings); Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); - Throw.IfTrue(nameof(settings), settings.StorageType != StorageType.Quantum, $"Storage type should be {nameof(StorageType.Quantum)}."); + Throw.IfTrue(settings.StorageType != StorageType.Quantum, nameof(settings), $"Storage type should be {nameof(StorageType.Quantum)}."); var length = data.Length; var expectedLength = GetExpectedLength(settings); - Throw.IfTrue(nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", length, expectedLength); + Throw.IfTrue(length, nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", expectedLength); _nativeInstance.ImportPixels(settings.X, settings.Y, settings.Width, settings.Height, settings.Mapping, settings.StorageType, data, 0U); } @@ -147,7 +147,7 @@ public void Ping(ReadOnlySequence data) /// Thrown when an error is raised by ImageMagick. public void Ping(ReadOnlySequence data, IMagickReadSettings? readSettings) { - Throw.IfEmpty(nameof(data), data); + Throw.IfEmpty(data); Read(data, readSettings, true); } @@ -168,7 +168,7 @@ public void Ping(ReadOnlySpan data) /// Thrown when an error is raised by ImageMagick. public void Ping(ReadOnlySpan data, IMagickReadSettings? readSettings) { - Throw.IfEmpty(nameof(data), data); + Throw.IfEmpty(data); Read(data, readSettings, true); } @@ -198,7 +198,7 @@ public void Read(ReadOnlySequence data, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(ReadOnlySequence data, IMagickReadSettings? readSettings) { - Throw.IfEmpty(nameof(data), data); + Throw.IfEmpty(data); Read(data, readSettings, false); } @@ -228,7 +228,7 @@ public void Read(ReadOnlySpan data, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(ReadOnlySpan data, IMagickReadSettings? readSettings) { - Throw.IfEmpty(nameof(data), data); + Throw.IfEmpty(data); Read(data, readSettings, false); } @@ -241,17 +241,17 @@ public void Read(ReadOnlySpan data, IMagickReadSettings? read /// Thrown when an error is raised by ImageMagick. public void ReadPixels(ReadOnlySpan data, IPixelReadSettings settings) { - Throw.IfEmpty(nameof(data), data); - Throw.IfNull(nameof(settings), settings); - Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); - Throw.IfTrue(nameof(settings), settings.StorageType == StorageType.Undefined, "Storage type should not be undefined."); + Throw.IfEmpty(data); + Throw.IfNull(settings); + Throw.IfNullOrEmpty(settings.Mapping, nameof(settings), "Pixel storage mapping should be defined."); + Throw.IfTrue(settings.StorageType == StorageType.Undefined, nameof(settings), "Storage type should not be undefined."); var newReadSettings = CreateReadSettings(settings.ReadSettings); SetSettings(newReadSettings); var length = data.Length; var expectedLength = GetExpectedByteLength(settings); - Throw.IfTrue(nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", length, expectedLength); + Throw.IfTrue(length < expectedLength, nameof(data), "The data length is {0} but should be at least {1}.", length, expectedLength); _nativeInstance.ReadPixels(settings.ReadSettings.Width!.Value, settings.ReadSettings.Height!.Value, settings.Mapping, settings.StorageType, data, 0U); } @@ -265,17 +265,17 @@ public void ReadPixels(ReadOnlySpan data, IPixelReadSettings /// Thrown when an error is raised by ImageMagick. public void ReadPixels(ReadOnlySpan data, IPixelReadSettings settings) { - Throw.IfEmpty(nameof(data), data); - Throw.IfNull(nameof(settings), settings); + Throw.IfEmpty(data); + Throw.IfNull(settings); Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); - Throw.IfTrue(nameof(settings), settings.StorageType != StorageType.Quantum, $"Storage type should be {nameof(StorageType.Quantum)}."); + Throw.IfTrue(settings.StorageType != StorageType.Quantum, nameof(settings), $"Storage type should be {nameof(StorageType.Quantum)}."); var newReadSettings = CreateReadSettings(settings.ReadSettings); SetSettings(newReadSettings); var length = data.Length; var expectedLength = GetExpectedLength(settings); - Throw.IfTrue(nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", length, expectedLength); + Throw.IfTrue(length, nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", expectedLength); _nativeInstance.ReadPixels(settings.ReadSettings.Width!.Value, settings.ReadSettings.Height!.Value, settings.Mapping, settings.StorageType, data, 0U); } @@ -288,7 +288,7 @@ public void ReadPixels(ReadOnlySpan data, IPixelReadSettingsThrown when an error is raised by ImageMagick. public void Write(IBufferWriter bufferWriter) { - Throw.IfNull(nameof(bufferWriter), bufferWriter); + Throw.IfNull(bufferWriter); _settings.FileName = null; diff --git a/src/Magick.NET/net8.0/MagickImageCollection.cs b/src/Magick.NET/net8.0/MagickImageCollection.cs index 610ea80160..bb45e9dfa0 100644 --- a/src/Magick.NET/net8.0/MagickImageCollection.cs +++ b/src/Magick.NET/net8.0/MagickImageCollection.cs @@ -94,7 +94,7 @@ public void Ping(ReadOnlySequence data) /// Thrown when an error is raised by ImageMagick. public void Ping(ReadOnlySequence data, IMagickReadSettings? readSettings) { - Throw.IfEmpty(nameof(data), data); + Throw.IfEmpty(data); Clear(); AddImages(data, readSettings, true); @@ -116,7 +116,7 @@ public void Ping(ReadOnlySpan data) /// Thrown when an error is raised by ImageMagick. public void Ping(ReadOnlySpan data, IMagickReadSettings? readSettings) { - Throw.IfEmpty(nameof(data), data); + Throw.IfEmpty(data); Clear(); AddImages(data, readSettings, true); @@ -147,7 +147,7 @@ public void Read(ReadOnlySequence data, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(ReadOnlySequence data, IMagickReadSettings? readSettings) { - Throw.IfEmpty(nameof(data), data); + Throw.IfEmpty(data); Clear(); AddImages(data, readSettings, false); @@ -178,7 +178,7 @@ public void Read(ReadOnlySpan data, MagickFormat format) /// Thrown when an error is raised by ImageMagick. public void Read(ReadOnlySpan data, IMagickReadSettings? readSettings) { - Throw.IfEmpty(nameof(data), data); + Throw.IfEmpty(data); Clear(); AddImages(data, readSettings, false); @@ -192,7 +192,7 @@ public void Read(ReadOnlySpan data, IMagickReadSettings? read /// Thrown when an error is raised by ImageMagick. public void Write(IBufferWriter bufferWriter) { - Throw.IfNull(nameof(bufferWriter), bufferWriter); + Throw.IfNull(bufferWriter); if (_images.Count == 0) return; diff --git a/src/Magick.NET/net8.0/Pixels/SafePixelCollection.cs b/src/Magick.NET/net8.0/Pixels/SafePixelCollection.cs index babf68f144..3c8c712d8e 100644 --- a/src/Magick.NET/net8.0/Pixels/SafePixelCollection.cs +++ b/src/Magick.NET/net8.0/Pixels/SafePixelCollection.cs @@ -28,7 +28,7 @@ public override ReadOnlySpan GetReadOnlyArea(int x, int y, uint wid public override ReadOnlySpan GetReadOnlyArea(IMagickGeometry geometry) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); return base.GetReadOnlyArea(geometry); } @@ -42,7 +42,7 @@ public override void SetArea(int x, int y, uint width, uint height, ReadOnlySpan public override void SetArea(IMagickGeometry geometry, ReadOnlySpan values) { - Throw.IfNull(nameof(geometry), geometry); + Throw.IfNull(geometry); base.SetArea(geometry, values); } @@ -63,16 +63,16 @@ private void CheckValues(int x, int y, ReadOnlySpan values) private void CheckValues(int x, int y, uint width, uint height, ReadOnlySpan values) { CheckIndex(x, y); - Throw.IfEmpty(nameof(values), values); + Throw.IfEmpty(values); Throw.IfFalse(nameof(values), values.Length % Channels == 0, "Values should have {0} channels.", Channels); var length = values.Length; var max = width * height * Channels; - Throw.IfTrue(nameof(values), length > max, "Too many values specified."); + Throw.IfTrue(length > max, nameof(values), "Too many values specified."); length = (x * y * (int)Channels) + length; max = Image.Width * Image.Height * Channels; - Throw.IfTrue(nameof(values), length > max, "Too many values specified."); + Throw.IfTrue(length > max, nameof(values), "Too many values specified."); } } diff --git a/src/Shared/Bytes.cs b/src/Shared/Bytes.cs index dcb24db967..ad5a62810e 100644 --- a/src/Shared/Bytes.cs +++ b/src/Shared/Bytes.cs @@ -25,9 +25,9 @@ public int Length public static Bytes Create(Stream stream, bool allowEmptyStream = false) { if (allowEmptyStream) - Throw.IfNull(nameof(stream), stream); + Throw.IfNull(stream); else - Throw.IfNullOrEmpty(nameof(stream), stream); + Throw.IfNullOrEmpty(stream); var data = GetData(stream, out var length); @@ -36,7 +36,7 @@ public static Bytes Create(Stream stream, bool allowEmptyStream = false) public static async Task CreateAsync(Stream stream, CancellationToken cancellationToken) { - Throw.IfNullOrEmpty(nameof(stream), stream); + Throw.IfNullOrEmpty(stream); var (data, length) = await GetDataAsync(stream, cancellationToken).ConfigureAwait(false); diff --git a/src/Shared/CallerArgumentExpressionAttribute.cs b/src/Shared/CallerArgumentExpressionAttribute.cs new file mode 100644 index 0000000000..4d87053cb0 --- /dev/null +++ b/src/Shared/CallerArgumentExpressionAttribute.cs @@ -0,0 +1,18 @@ +// Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. +// Licensed under the Apache License, Version 2.0. + +#if !NET8_0 +namespace System.Runtime.CompilerServices; + +/// Allows capturing of the expressions passed to a method. +[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)] +internal sealed class CallerArgumentExpressionAttribute : Attribute +{ + public CallerArgumentExpressionAttribute(string parameterName) + { + ParameterName = parameterName; + } + + public string ParameterName { get; } +} +#endif diff --git a/src/Shared/FileHelper.cs b/src/Shared/FileHelper.cs index e131495701..d5271d2b8a 100644 --- a/src/Shared/FileHelper.cs +++ b/src/Shared/FileHelper.cs @@ -23,7 +23,7 @@ public static string CheckForBaseDirectory(string fileName) public static string GetFullPath(string path) { - Throw.IfNullOrEmpty(nameof(path), path); + Throw.IfNullOrEmpty(path); path = CheckForBaseDirectory(path); path = Path.GetFullPath(path); diff --git a/src/Shared/Throw.cs b/src/Shared/Throw.cs index 8e1144d6b5..cf4077b837 100644 --- a/src/Shared/Throw.cs +++ b/src/Shared/Throw.cs @@ -5,6 +5,7 @@ using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.IO; +using System.Runtime.CompilerServices; namespace ImageMagick; @@ -22,21 +23,15 @@ public static void IfFalse(string paramName, bool condition, string message, throw new ArgumentException(FormatMessage(message, arg0), paramName); } - public static void IfNull(string paramName, [NotNull] object? value) - { - if (value is null) - throw new ArgumentNullException(paramName); - } - - public static void IfNull(string paramName, [NotNull] object? value, string message) + public static void IfNull([NotNull] object? value, [CallerArgumentExpression(nameof(value))] string? paramName = null, string? message = "Must not be null") { if (value is null) throw new ArgumentNullException(paramName, message); } - public static void IfNullOrEmpty(string paramName, Stream value) + public static void IfNullOrEmpty(Stream value, [CallerArgumentExpression(nameof(value))] string? paramName = null) { - IfNull(paramName, value); + IfNull(value, paramName); if (value.CanSeek) { @@ -48,56 +43,53 @@ public static void IfNullOrEmpty(string paramName, Stream value) } } - public static void IfNullOrEmpty(string paramName, [NotNull] string? value) - => IfNullOrEmpty(paramName, value, "Value cannot be null or empty."); - - public static void IfNullOrEmpty(string paramName, [NotNull] string? value, string message) + public static void IfNullOrEmpty([NotNull] string? value, [CallerArgumentExpression(nameof(value))] string? paramName = null, string? message = "Value cannot be null or empty.") { - IfNull(paramName, value, message); + IfNull(value, paramName, message); if (value.Length == 0) throw new ArgumentException(message, paramName); } - public static void IfNullOrEmpty(string paramName, [NotNull] Array value) + public static void IfNullOrEmpty([NotNull] Array value, [CallerArgumentExpression(nameof(value))] string? paramName = null) { - IfNull(paramName, value); + IfNull(value, paramName); if (value.Length == 0) throw new ArgumentException("Value cannot be empty.", paramName); } - public static void IfNegative(string paramName, double value) + public static void IfNegative(double value, [CallerArgumentExpression(nameof(value))] string? paramName = null) { if (value < 0.0) throw new ArgumentException("Value should not be negative.", paramName); } - public static void IfNegative(string paramName, Percentage value) + public static void IfNegative(Percentage value, [CallerArgumentExpression(nameof(value))] string? paramName = null) { if ((double)value < 0.0) throw new ArgumentException("Value should not be negative.", paramName); } - public static void IfOutOfRange(string paramName, int index, uint length) + public static void IfOutOfRange(int index, uint length, [CallerArgumentExpression(nameof(index))] string? paramName = null) { if (index < 0 || index >= length) throw new ArgumentOutOfRangeException(paramName); } - public static void IfOutOfRange(string paramName, int min, int max, int value, string message) + public static void IfOutOfRange(int min, int max, int value, [CallerArgumentExpression(nameof(value))] string? paramName = null, string? message = null) { if (value < min || value > max) throw new ArgumentOutOfRangeException(paramName, message); } - public static void IfOutOfRange(string paramName, int min, int max, int value, string message, T arg0) + public static void IfOutOfRange(int min, int max, int value, string message, T arg0, [CallerArgumentExpression(nameof(value))] string? paramName = null) { if (value < min || value > max) throw new ArgumentOutOfRangeException(paramName, FormatMessage(message, arg0)); } - public static void IfOutOfRange(string paramName, Percentage value) + public static void IfOutOfRange(Percentage value, [CallerArgumentExpression(nameof(value))] string? paramName = null) { var val = (double)value; @@ -108,23 +100,31 @@ public static void IfOutOfRange(string paramName, Percentage value) throw new ArgumentOutOfRangeException(paramName, "Value should be smaller than 100."); } - public static void IfTrue(string paramName, bool condition, string message) + public static void IfTrue(bool condition, [CallerArgumentExpression(nameof(condition))] string? paramName = null, string? message = null) { if (condition) throw new ArgumentException(message, paramName); } - public static void IfTrue(string paramName, bool condition, string message, T0 arg0) + public static void IfTrue(bool condition, string paramName, string message, T0 arg0) { if (condition) throw new ArgumentException(FormatMessage(message, arg0), paramName); } - public static void IfTrue(string paramName, bool condition, string message, T0 arg0, T1 arg1) +#if NET8_0 + public static void IfTrue(bool condition, string paramName, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0, T1 arg1) + { + if (condition) + throw new ArgumentException(FormatMessage(message, arg0, arg1), paramName); + } +#else + public static void IfTrue(bool condition, string paramName, string message, T0 arg0, T1 arg1) { if (condition) throw new ArgumentException(FormatMessage(message, arg0, arg1), paramName); } +#endif private static string FormatMessage(string message, params object?[] args) => string.Format(CultureInfo.InvariantCulture, message, args); From 5b34d7339dbdc86b67a2f19003e41c61e9b4f095 Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Thu, 16 Jan 2025 22:21:56 +0300 Subject: [PATCH 02/11] Add string syntax attribute and fix errors --- src/Magick.NET.Core/Magick.NET.Core.csproj | 1 + .../Magick.NET.SystemDrawing.csproj | 1 + .../Magick.NET.SystemWindowsMedia.csproj | 1 + src/Magick.NET/Magick.NET.csproj | 3 +- src/Magick.NET/MagickImage.cs | 6 +- src/Magick.NET/net8.0/MagickImage.cs | 8 +-- .../CallerArgumentExpressionAttribute.cs | 2 +- src/Shared/StringSyntaxAttribute.cs | 68 +++++++++++++++++++ src/Shared/Throw.cs | 12 +--- 9 files changed, 83 insertions(+), 19 deletions(-) create mode 100644 src/Shared/StringSyntaxAttribute.cs diff --git a/src/Magick.NET.Core/Magick.NET.Core.csproj b/src/Magick.NET.Core/Magick.NET.Core.csproj index 8115652b94..6bda0dabb4 100644 --- a/src/Magick.NET.Core/Magick.NET.Core.csproj +++ b/src/Magick.NET.Core/Magick.NET.Core.csproj @@ -22,6 +22,7 @@ + diff --git a/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj b/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj index 2193d39d08..00b9f683f1 100644 --- a/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj +++ b/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj @@ -27,6 +27,7 @@ + diff --git a/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj b/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj index 942d86efd0..3b60171d5c 100644 --- a/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj +++ b/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj @@ -20,6 +20,7 @@ + diff --git a/src/Magick.NET/Magick.NET.csproj b/src/Magick.NET/Magick.NET.csproj index a2f556c63b..59b674565e 100644 --- a/src/Magick.NET/Magick.NET.csproj +++ b/src/Magick.NET/Magick.NET.csproj @@ -1,4 +1,4 @@ - + net8.0;netstandard20 x86;x64;arm64;AnyCPU @@ -77,6 +77,7 @@ + diff --git a/src/Magick.NET/MagickImage.cs b/src/Magick.NET/MagickImage.cs index 29b9cd9bfb..9a02014a3a 100644 --- a/src/Magick.NET/MagickImage.cs +++ b/src/Magick.NET/MagickImage.cs @@ -3483,7 +3483,7 @@ public void ImportPixels(QuantumType[] data, uint offset, IPixelImportSettings s var length = data.Length - offset; var expectedLength = GetExpectedLength(settings); - Throw.IfTrue(data.Length, nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", expectedLength + offset); + Throw.IfTrue(length < expectedLength, nameof(data), "The data length is {0} but should be at least {1}.", data.Length, expectedLength + offset); _nativeInstance.ImportPixels(settings.X, settings.Y, settings.Width, settings.Height, settings.Mapping, settings.StorageType, data, offset); } @@ -5114,14 +5114,14 @@ public void ReadPixels(QuantumType[] data, uint offset, uint count, IPixelReadSe Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); Throw.IfTrue(offset + count > data.Length, nameof(count), "The number of items should not exceed the length of the array."); Throw.IfNull(settings); - Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); + Throw.IfNullOrEmpty(settings.Mapping, nameof(settings), "Pixel storage mapping should be defined."); Throw.IfTrue(settings.StorageType != StorageType.Quantum, nameof(settings), $"Storage type should be {nameof(StorageType.Quantum)}."); var newReadSettings = CreateReadSettings(settings.ReadSettings); SetSettings(newReadSettings); var expectedLength = GetExpectedLength(settings); - Throw.IfTrue(count, nameof(count), count < expectedLength, "The count is {0} but should be at least {1}.", expectedLength); + Throw.IfTrue(count < expectedLength, nameof(count), "The count is {0} but should be at least {1}.", count, expectedLength); var offsetInBytes = ToByteCount(settings.StorageType, offset); diff --git a/src/Magick.NET/net8.0/MagickImage.cs b/src/Magick.NET/net8.0/MagickImage.cs index c6766a422e..89c833fae9 100644 --- a/src/Magick.NET/net8.0/MagickImage.cs +++ b/src/Magick.NET/net8.0/MagickImage.cs @@ -99,7 +99,7 @@ public void ImportPixels(ReadOnlySpan data, IPixelImportSettings settings) { Throw.IfEmpty(data); Throw.IfNull(settings); - Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); + Throw.IfNullOrEmpty(settings.Mapping, nameof(settings), "Pixel storage mapping should be defined."); Throw.IfTrue(settings.StorageType == StorageType.Undefined, nameof(settings), "Storage type should not be undefined."); var length = data.Length; @@ -125,7 +125,7 @@ public void ImportPixels(ReadOnlySpan data, IPixelImportSettings se var length = data.Length; var expectedLength = GetExpectedLength(settings); - Throw.IfTrue(length, nameof(data), length < expectedLength, "The data length is {0} but should be at least {1}.", expectedLength); + Throw.IfTrue(length < expectedLength, nameof(data), "The data length is {0} but should be at least {1}.", length, expectedLength); _nativeInstance.ImportPixels(settings.X, settings.Y, settings.Width, settings.Height, settings.Mapping, settings.StorageType, data, 0U); } @@ -267,7 +267,7 @@ public void ReadPixels(ReadOnlySpan data, IPixelReadSettings data, IPixelReadSettingsAllows capturing of the expressions passed to a method. diff --git a/src/Shared/StringSyntaxAttribute.cs b/src/Shared/StringSyntaxAttribute.cs new file mode 100644 index 0000000000..f75e1cc2ec --- /dev/null +++ b/src/Shared/StringSyntaxAttribute.cs @@ -0,0 +1,68 @@ +// Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. +// Licensed under the Apache License, Version 2.0. + +#if NETSTANDARD2_0 || NET462 +namespace System.Diagnostics.CodeAnalysis; + +/// Specifies the syntax used in a string. +[AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = false)] +internal sealed class StringSyntaxAttribute : Attribute +{ + /// The syntax identifier for strings containing composite formats for string formatting. + public const string CompositeFormat = nameof(CompositeFormat); + + /// The syntax identifier for strings containing date format specifiers. + public const string DateOnlyFormat = nameof(DateOnlyFormat); + + /// The syntax identifier for strings containing date and time format specifiers. + public const string DateTimeFormat = nameof(DateTimeFormat); + + /// The syntax identifier for strings containing format specifiers. + public const string EnumFormat = nameof(EnumFormat); + + /// The syntax identifier for strings containing format specifiers. + public const string GuidFormat = nameof(GuidFormat); + + /// The syntax identifier for strings containing JavaScript Object Notation (JSON). + public const string Json = nameof(Json); + + /// The syntax identifier for strings containing numeric format specifiers. + public const string NumericFormat = nameof(NumericFormat); + + /// The syntax identifier for strings containing regular expressions. + public const string Regex = nameof(Regex); + + /// The syntax identifier for strings containing time format specifiers. + public const string TimeOnlyFormat = nameof(TimeOnlyFormat); + + /// The syntax identifier for strings containing format specifiers. + public const string TimeSpanFormat = nameof(TimeSpanFormat); + + /// The syntax identifier for strings containing URIs. + public const string Uri = nameof(Uri); + + /// The syntax identifier for strings containing XML. + public const string Xml = nameof(Xml); + + /// The syntax identifier. + public StringSyntaxAttribute(string syntax) + { + Syntax = syntax; + Arguments = Array.Empty(); + } + + /// The syntax identifier. + /// Optional arguments associated with the specific syntax employed. + public StringSyntaxAttribute(string syntax, params object?[] arguments) + { + Syntax = syntax; + Arguments = arguments; + } + + /// Gets the identifier of the syntax used. + public string Syntax { get; } + + /// Gets the optional arguments associated with the specific syntax employed. + public object?[] Arguments { get; } +} +#endif diff --git a/src/Shared/Throw.cs b/src/Shared/Throw.cs index cf4077b837..fa8e65eb8f 100644 --- a/src/Shared/Throw.cs +++ b/src/Shared/Throw.cs @@ -17,7 +17,7 @@ public static void IfFalse(string paramName, bool condition, string message) throw new ArgumentException(message, paramName); } - public static void IfFalse(string paramName, bool condition, string message, T0 arg0) + public static void IfFalse(string paramName, bool condition, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0) { if (!condition) throw new ArgumentException(FormatMessage(message, arg0), paramName); @@ -106,25 +106,17 @@ public static void IfTrue(bool condition, [CallerArgumentExpression(nameof(condi throw new ArgumentException(message, paramName); } - public static void IfTrue(bool condition, string paramName, string message, T0 arg0) + public static void IfTrue(bool condition, string paramName, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0) { if (condition) throw new ArgumentException(FormatMessage(message, arg0), paramName); } -#if NET8_0 public static void IfTrue(bool condition, string paramName, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0, T1 arg1) { if (condition) throw new ArgumentException(FormatMessage(message, arg0, arg1), paramName); } -#else - public static void IfTrue(bool condition, string paramName, string message, T0 arg0, T1 arg1) - { - if (condition) - throw new ArgumentException(FormatMessage(message, arg0, arg1), paramName); - } -#endif private static string FormatMessage(string message, params object?[] args) => string.Format(CultureInfo.InvariantCulture, message, args); From e4723b96618b8397b2a830ce5a4f0ec22b488414 Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Mon, 20 Jan 2025 12:33:16 +0300 Subject: [PATCH 03/11] Change Throw.IfFalse and Throw.IfNullOrEmpty --- src/Magick.NET.Core/Types/Density.cs | 4 ++-- src/Magick.NET.Core/Types/PointD.cs | 4 ++-- src/Magick.NET/Colors/MagickColor.cs | 2 +- src/Magick.NET/Formats/Pdf/PdfInfo.cs | 2 +- src/Magick.NET/Helpers/StreamWrapper.cs | 4 ++-- .../ImageOptimizers/GifOptimizer.cs | 2 +- .../ImageOptimizers/IcoOptimizer.cs | 4 ++-- .../ImageOptimizers/ImageOptimizer.cs | 4 ++-- .../ImageOptimizers/ImageOptimizerHelper.cs | 6 +++--- .../ImageOptimizers/JpegOptimizer.cs | 4 ++-- .../ImageOptimizers/PngOptimizer.cs | 4 ++-- src/Magick.NET/MagickFormatInfo.cs | 2 +- src/Magick.NET/MagickImage.cs | 20 +++++++++---------- src/Magick.NET/MagickImageCollection.cs | 10 +++++----- src/Magick.NET/MagickNET.cs | 2 +- src/Magick.NET/Matrices/DoubleMatrix.cs | 2 +- src/Magick.NET/Pixels/SafePixelCollection.cs | 6 +++--- src/Magick.NET/Statistics/PerceptualHash.cs | 4 ++-- src/Magick.NET/net8.0/MagickImage.cs | 2 +- .../net8.0/Pixels/SafePixelCollection.cs | 2 +- src/Shared/Bytes.cs | 6 +++--- src/Shared/FileHelper.cs | 2 +- src/Shared/Throw.cs | 4 ++-- 23 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/Magick.NET.Core/Types/Density.cs b/src/Magick.NET.Core/Types/Density.cs index 678e52ef9e..871b705ddd 100644 --- a/src/Magick.NET.Core/Types/Density.cs +++ b/src/Magick.NET.Core/Types/Density.cs @@ -181,13 +181,13 @@ private void Initialize(string value) var xyValues = values[0].Split('x'); Throw.IfTrue(xyValues.Length > 2, nameof(value), "Invalid density specified."); - Throw.IfFalse(nameof(value), double.TryParse(xyValues[0], NumberStyles.Number, CultureInfo.InvariantCulture, out var x), "Invalid density specified."); + Throw.IfFalse(double.TryParse(xyValues[0], NumberStyles.Number, CultureInfo.InvariantCulture, out var x), nameof(value), "Invalid density specified."); double y; if (xyValues.Length == 1) y = x; else - Throw.IfFalse(nameof(value), double.TryParse(xyValues[1], NumberStyles.Number, CultureInfo.InvariantCulture, out y), "Invalid density specified."); + Throw.IfFalse(double.TryParse(xyValues[1], NumberStyles.Number, CultureInfo.InvariantCulture, out y), nameof(value), "Invalid density specified."); X = x; Y = y; diff --git a/src/Magick.NET.Core/Types/PointD.cs b/src/Magick.NET.Core/Types/PointD.cs index 07affe1755..6dc3e1fb18 100644 --- a/src/Magick.NET.Core/Types/PointD.cs +++ b/src/Magick.NET.Core/Types/PointD.cs @@ -110,11 +110,11 @@ private void Initialize(string value) var values = value.Split('x'); Throw.IfTrue(values.Length > 2, nameof(value), "Invalid point specified."); - Throw.IfFalse(nameof(value), double.TryParse(values[0], NumberStyles.Number, CultureInfo.InvariantCulture, out var x), "Invalid point specified."); + Throw.IfFalse(double.TryParse(values[0], NumberStyles.Number, CultureInfo.InvariantCulture, out var x), nameof(value), "Invalid point specified."); double y; if (values.Length == 2) - Throw.IfFalse(nameof(value), double.TryParse(values[1], NumberStyles.Number, CultureInfo.InvariantCulture, out y), "Invalid point specified."); + Throw.IfFalse(double.TryParse(values[1], NumberStyles.Number, CultureInfo.InvariantCulture, out y), nameof(value), "Invalid point specified."); else y = x; diff --git a/src/Magick.NET/Colors/MagickColor.cs b/src/Magick.NET/Colors/MagickColor.cs index acfc922db8..c33d265bab 100644 --- a/src/Magick.NET/Colors/MagickColor.cs +++ b/src/Magick.NET/Colors/MagickColor.cs @@ -134,7 +134,7 @@ public MagickColor(string color) } using var instance = NativeMagickColor.Create(); - Throw.IfFalse(nameof(color), instance.Initialize(color), "Invalid color specified"); + Throw.IfFalse(instance.Initialize(color), nameof(color), "Invalid color specified"); Initialize(instance); } diff --git a/src/Magick.NET/Formats/Pdf/PdfInfo.cs b/src/Magick.NET/Formats/Pdf/PdfInfo.cs index fd3ffe07f0..5212c18a71 100644 --- a/src/Magick.NET/Formats/Pdf/PdfInfo.cs +++ b/src/Magick.NET/Formats/Pdf/PdfInfo.cs @@ -57,7 +57,7 @@ public static PdfInfo Create(string fileName) public static PdfInfo Create(string fileName, string password) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); filePath = filePath.Replace('\\', '/'); Throw.IfNull(password); diff --git a/src/Magick.NET/Helpers/StreamWrapper.cs b/src/Magick.NET/Helpers/StreamWrapper.cs index fe258373fc..785079fb25 100644 --- a/src/Magick.NET/Helpers/StreamWrapper.cs +++ b/src/Magick.NET/Helpers/StreamWrapper.cs @@ -36,14 +36,14 @@ private StreamWrapper(Stream stream) public static StreamWrapper CreateForReading(Stream stream) { - Throw.IfFalse(nameof(stream), stream.CanRead, "The stream should be readable."); + Throw.IfFalse(stream.CanRead, nameof(stream), "The stream should be readable."); return new StreamWrapper(stream); } public static StreamWrapper CreateForWriting(Stream stream) { - Throw.IfFalse(nameof(stream), stream.CanWrite, "The stream should be writable."); + Throw.IfFalse(stream.CanWrite, nameof(stream), "The stream should be writable."); return new StreamWrapper(stream); } diff --git a/src/Magick.NET/ImageOptimizers/GifOptimizer.cs b/src/Magick.NET/ImageOptimizers/GifOptimizer.cs index 5fd0e28b19..62a1409acb 100644 --- a/src/Magick.NET/ImageOptimizers/GifOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/GifOptimizer.cs @@ -85,7 +85,7 @@ public bool LosslessCompress(FileInfo file) public bool LosslessCompress(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return DoLosslessCompress(new FileInfo(filePath)); } diff --git a/src/Magick.NET/ImageOptimizers/IcoOptimizer.cs b/src/Magick.NET/ImageOptimizers/IcoOptimizer.cs index 77158ef82e..38014c1c07 100644 --- a/src/Magick.NET/ImageOptimizers/IcoOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/IcoOptimizer.cs @@ -53,7 +53,7 @@ public bool Compress(FileInfo file) public bool Compress(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return DoCompress(new FileInfo(filePath), false); } @@ -90,7 +90,7 @@ public bool LosslessCompress(FileInfo file) public bool LosslessCompress(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return DoCompress(new FileInfo(filePath), true); } diff --git a/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs b/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs index fb2c41000e..d651836b9f 100644 --- a/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs @@ -53,7 +53,7 @@ public bool Compress(FileInfo file) public bool Compress(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return DoCompress(new FileInfo(filePath)); } @@ -150,7 +150,7 @@ public bool LosslessCompress(FileInfo file) public bool LosslessCompress(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return DoLosslessCompress(new FileInfo(filePath)); } diff --git a/src/Magick.NET/ImageOptimizers/ImageOptimizerHelper.cs b/src/Magick.NET/ImageOptimizers/ImageOptimizerHelper.cs index c49515d9e1..4a3463f221 100644 --- a/src/Magick.NET/ImageOptimizers/ImageOptimizerHelper.cs +++ b/src/Magick.NET/ImageOptimizers/ImageOptimizerHelper.cs @@ -27,9 +27,9 @@ public static void CheckFormat(IMagickImage image, MagickFormat exp public static void CheckStream(Stream stream) { Throw.IfNullOrEmpty(stream); - Throw.IfFalse(nameof(stream), stream.CanRead, "The stream should be readable."); - Throw.IfFalse(nameof(stream), stream.CanWrite, "The stream should be writeable."); - Throw.IfFalse(nameof(stream), stream.CanSeek, "The stream should be seekable."); + Throw.IfFalse(stream.CanRead, nameof(stream), "The stream should be readable."); + Throw.IfFalse(stream.CanWrite, nameof(stream), "The stream should be writeable."); + Throw.IfFalse(stream.CanSeek, nameof(stream), "The stream should be seekable."); } public static IMagickFormatInfo? GetFormatInformation(FileInfo file) diff --git a/src/Magick.NET/ImageOptimizers/JpegOptimizer.cs b/src/Magick.NET/ImageOptimizers/JpegOptimizer.cs index d528bfeaf3..f9166ba785 100644 --- a/src/Magick.NET/ImageOptimizers/JpegOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/JpegOptimizer.cs @@ -75,7 +75,7 @@ public bool Compress(string fileName) public bool Compress(string fileName, uint quality) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return DoCompress(new FileInfo(fileName), false, quality); } @@ -123,7 +123,7 @@ public bool LosslessCompress(FileInfo file) public bool LosslessCompress(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return DoCompress(new FileInfo(fileName), true, 0); } diff --git a/src/Magick.NET/ImageOptimizers/PngOptimizer.cs b/src/Magick.NET/ImageOptimizers/PngOptimizer.cs index cc4057bfbc..b620e9cab0 100644 --- a/src/Magick.NET/ImageOptimizers/PngOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/PngOptimizer.cs @@ -43,7 +43,7 @@ public bool Compress(FileInfo file) public bool Compress(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return DoCompress(new FileInfo(filePath), false); } @@ -80,7 +80,7 @@ public bool LosslessCompress(FileInfo file) public bool LosslessCompress(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return DoCompress(new FileInfo(filePath), true); } diff --git a/src/Magick.NET/MagickFormatInfo.cs b/src/Magick.NET/MagickFormatInfo.cs index 6cec89d5e0..053803ab23 100644 --- a/src/Magick.NET/MagickFormatInfo.cs +++ b/src/Magick.NET/MagickFormatInfo.cs @@ -129,7 +129,7 @@ internal static IReadOnlyCollection All public static IMagickFormatInfo? Create(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return Create(new FileInfo(filePath)); } diff --git a/src/Magick.NET/MagickImage.cs b/src/Magick.NET/MagickImage.cs index 9a02014a3a..384c49fdf3 100644 --- a/src/Magick.NET/MagickImage.cs +++ b/src/Magick.NET/MagickImage.cs @@ -3442,7 +3442,7 @@ public void ImportPixels(byte[] data, uint offset, IPixelImportSettings settings Throw.IfNullOrEmpty(data); Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); Throw.IfNull(settings); - Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); + Throw.IfNullOrEmpty(settings.Mapping, nameof(settings), "Pixel storage mapping should be defined."); Throw.IfTrue(settings.StorageType == StorageType.Undefined, nameof(settings), "Storage type should not be undefined."); var length = data.Length - offset; @@ -3478,7 +3478,7 @@ public void ImportPixels(QuantumType[] data, uint offset, IPixelImportSettings s Throw.IfNullOrEmpty(data); Throw.IfTrue(offset >= data.Length, nameof(offset), "The offset should not exceed the length of the array."); Throw.IfNull(settings); - Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); + Throw.IfNullOrEmpty(settings.Mapping, nameof(settings), "Pixel storage mapping should be defined."); Throw.IfTrue(settings.StorageType != StorageType.Quantum, nameof(settings), $"Storage type should be {nameof(StorageType.Quantum)}."); var length = data.Length - offset; @@ -5037,7 +5037,7 @@ public Task ReadAsync(string fileName, IMagickReadSettings? readSet public async Task ReadAsync(string fileName, IMagickReadSettings? readSettings, CancellationToken cancellationToken) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); var bytes = await FileHelper.ReadAllBytesAsync(fileName, cancellationToken).ConfigureAwait(false); @@ -5165,7 +5165,7 @@ public void ReadPixels(Stream stream, IPixelReadSettings settings) public void ReadPixels(string fileName, IPixelReadSettings settings) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); var data = File.ReadAllBytes(filePath); ReadPixels(data, 0, (uint)data.Length, settings); @@ -5243,7 +5243,7 @@ public Task ReadPixelsAsync(string fileName, IPixelReadSettings set public async Task ReadPixelsAsync(string fileName, IPixelReadSettings settings, CancellationToken cancellationToken) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); var data = await FileHelper.ReadAllBytesAsync(filePath, cancellationToken).ConfigureAwait(false); @@ -7141,7 +7141,7 @@ public void Write(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); _nativeInstance.FileName_Set(filePath); _nativeInstance.WriteFile(_settings); @@ -7337,7 +7337,7 @@ public Task WriteAsync(string fileName) public Task WriteAsync(string fileName, CancellationToken cancellationToken) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return WriteAsync(new FileInfo(filePath), cancellationToken); } @@ -7387,7 +7387,7 @@ public Task WriteAsync(string fileName, MagickFormat format) public Task WriteAsync(string fileName, MagickFormat format, CancellationToken cancellationToken) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); var bytes = ToByteArray(format); return FileHelper.WriteAllBytesAsync(filePath, bytes, cancellationToken); @@ -7537,7 +7537,7 @@ private IReadOnlyList> CreateList(IntPtr images) private MagickReadSettings CreateReadSettings(IMagickReadSettings? readSettings) { if (readSettings is not null && readSettings.FrameCount.HasValue) - Throw.IfFalse(nameof(readSettings), readSettings.FrameCount.Value == 1, "The frame count can only be set to 1 when a single image is being read."); + Throw.IfFalse(readSettings.FrameCount.Value == 1, nameof(readSettings), "The frame count can only be set to 1 when a single image is being read."); MagickReadSettings newReadSettings; if (readSettings is null) @@ -7741,7 +7741,7 @@ private void Read(Stream stream, IMagickReadSettings? readSettings, private void Read(string fileName, IMagickReadSettings? readSettings, bool ping) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); var newReadSettings = CreateReadSettings(readSettings); SetSettings(newReadSettings); diff --git a/src/Magick.NET/MagickImageCollection.cs b/src/Magick.NET/MagickImageCollection.cs index 8b068f5076..b610edda0b 100644 --- a/src/Magick.NET/MagickImageCollection.cs +++ b/src/Magick.NET/MagickImageCollection.cs @@ -1153,7 +1153,7 @@ public Task ReadAsync(string fileName, IMagickReadSettings? readSet public async Task ReadAsync(string fileName, IMagickReadSettings? readSettings, CancellationToken cancellationToken) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); var bytes = await FileHelper.ReadAllBytesAsync(fileName, cancellationToken).ConfigureAwait(false); @@ -1504,7 +1504,7 @@ public void Write(string fileName) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); if (_images.Count == 0) return; @@ -1729,7 +1729,7 @@ public Task WriteAsync(string fileName) public Task WriteAsync(string fileName, CancellationToken cancellationToken) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); return WriteAsync(new FileInfo(filePath), cancellationToken); } @@ -1783,7 +1783,7 @@ public Task WriteAsync(string fileName, MagickFormat format) public Task WriteAsync(string fileName, MagickFormat format, CancellationToken cancellationToken) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); if (_images.Count == 0) return Task.CompletedTask; @@ -1823,7 +1823,7 @@ private void AddImages(byte[] data, uint offset, uint count, IMagickReadSettings private void AddImages(string fileName, IMagickReadSettings? readSettings, bool ping) { var filePath = FileHelper.CheckForBaseDirectory(fileName); - Throw.IfNullOrEmpty(nameof(fileName), filePath); + Throw.IfNullOrEmpty(filePath, nameof(fileName)); var settings = CreateSettings(readSettings); settings.FileName = filePath; diff --git a/src/Magick.NET/MagickNET.cs b/src/Magick.NET/MagickNET.cs index 21531e4fe5..c2e572b825 100644 --- a/src/Magick.NET/MagickNET.cs +++ b/src/Magick.NET/MagickNET.cs @@ -489,7 +489,7 @@ private static void CheckImageMagickFiles(string path) foreach (var configurationFile in ConfigurationFiles.Default.All) { var fileName = Path.Combine(path, configurationFile.FileName); - Throw.IfFalse(nameof(path), File.Exists(fileName), "Unable to find file: {0}", fileName); + Throw.IfFalse(File.Exists(fileName), nameof(path), "Unable to find file: {0}", fileName); } } diff --git a/src/Magick.NET/Matrices/DoubleMatrix.cs b/src/Magick.NET/Matrices/DoubleMatrix.cs index fd981df22c..b61a5fc44f 100644 --- a/src/Magick.NET/Matrices/DoubleMatrix.cs +++ b/src/Magick.NET/Matrices/DoubleMatrix.cs @@ -26,7 +26,7 @@ protected DoubleMatrix(uint order, double[]? values) _values = new double[Order * Order]; if (values is not null) { - Throw.IfFalse(nameof(values), (Order * Order) == values.Length, "Invalid number of values specified"); + Throw.IfFalse((Order * Order) == values.Length, nameof(values), "Invalid number of values specified"); Array.Copy(values, _values, _values.Length); } } diff --git a/src/Magick.NET/Pixels/SafePixelCollection.cs b/src/Magick.NET/Pixels/SafePixelCollection.cs index c2069b286e..6a75b07a00 100644 --- a/src/Magick.NET/Pixels/SafePixelCollection.cs +++ b/src/Magick.NET/Pixels/SafePixelCollection.cs @@ -187,8 +187,8 @@ public override void SetPixels(QuantumType[] values) private void CheckArea(int x, int y, uint width, uint height) { CheckIndex(x, y); - Throw.IfOutOfRange(1, (int)Image.Width - x, (int)width, "Invalid width: {0}.", width); - Throw.IfOutOfRange(1, (int)Image.Height - y, (int)height, "Invalid height: {0}.", height); + Throw.IfOutOfRange(1, (int)Image.Width - x, (int)width, "Invalid width: {0}.", width, nameof(width)); + Throw.IfOutOfRange(1, (int)Image.Height - y, (int)height, "Invalid height: {0}.", height, nameof(height)); } private void CheckIndex(int x, int y) @@ -207,7 +207,7 @@ private void CheckValues(int x, int y, uint width, uint height, T[] values) { CheckIndex(x, y); Throw.IfNullOrEmpty(values); - Throw.IfFalse(nameof(values), values.Length % Channels == 0, "Values should have {0} channels.", Channels); + Throw.IfFalse(values.Length % Channels == 0, nameof(values), "Values should have {0} channels.", Channels); var length = values.Length; var max = width * height * Channels; diff --git a/src/Magick.NET/Statistics/PerceptualHash.cs b/src/Magick.NET/Statistics/PerceptualHash.cs index 52fa58cce2..2f4bb7c43d 100644 --- a/src/Magick.NET/Statistics/PerceptualHash.cs +++ b/src/Magick.NET/Statistics/PerceptualHash.cs @@ -34,7 +34,7 @@ public PerceptualHash(string hash, params ColorSpace[] colorSpaces) ValidateColorSpaces(colorSpaces); var length = 35 * colorSpaces.Length; - Throw.IfFalse(nameof(hash), hash.Length == 3 * length, "Invalid hash size."); + Throw.IfFalse(hash.Length == 3 * length, nameof(hash), "Invalid hash size."); _channels[PixelChannel.Red] = new ChannelPerceptualHash(PixelChannel.Red, colorSpaces, hash.Substring(0, length)); _channels[PixelChannel.Green] = new ChannelPerceptualHash(PixelChannel.Green, colorSpaces, hash.Substring(length, length)); @@ -104,7 +104,7 @@ internal static void ValidateColorSpaces(ColorSpace[] colorSpaces) { Throw.IfNull(colorSpaces); Throw.IfOutOfRange(1, 6, colorSpaces.Length, nameof(colorSpaces), "Invalid number of colorspaces, the minimum is 1 and the maximum is 6."); - Throw.IfFalse(nameof(colorSpaces), colorSpaces.Distinct().Count() == colorSpaces.Length, "Specifying the same colorspace more than once is not allowed."); + Throw.IfFalse(colorSpaces.Distinct().Count() == colorSpaces.Length, nameof(colorSpaces), "Specifying the same colorspace more than once is not allowed."); } internal static void DisposeList(IntPtr list) diff --git a/src/Magick.NET/net8.0/MagickImage.cs b/src/Magick.NET/net8.0/MagickImage.cs index 89c833fae9..9b309ed45a 100644 --- a/src/Magick.NET/net8.0/MagickImage.cs +++ b/src/Magick.NET/net8.0/MagickImage.cs @@ -120,7 +120,7 @@ public void ImportPixels(ReadOnlySpan data, IPixelImportSettings se { Throw.IfEmpty(data); Throw.IfNull(settings); - Throw.IfNullOrEmpty(nameof(settings), settings.Mapping, "Pixel storage mapping should be defined."); + Throw.IfNullOrEmpty(settings.Mapping, nameof(settings), "Pixel storage mapping should be defined."); Throw.IfTrue(settings.StorageType != StorageType.Quantum, nameof(settings), $"Storage type should be {nameof(StorageType.Quantum)}."); var length = data.Length; diff --git a/src/Magick.NET/net8.0/Pixels/SafePixelCollection.cs b/src/Magick.NET/net8.0/Pixels/SafePixelCollection.cs index 3c8c712d8e..ede96a31f8 100644 --- a/src/Magick.NET/net8.0/Pixels/SafePixelCollection.cs +++ b/src/Magick.NET/net8.0/Pixels/SafePixelCollection.cs @@ -64,7 +64,7 @@ private void CheckValues(int x, int y, uint width, uint height, ReadOnlySpan< { CheckIndex(x, y); Throw.IfEmpty(values); - Throw.IfFalse(nameof(values), values.Length % Channels == 0, "Values should have {0} channels.", Channels); + Throw.IfFalse(values.Length % Channels == 0, nameof(values), "Values should have {0} channels.", Channels); var length = values.Length; var max = width * height * Channels; diff --git a/src/Shared/Bytes.cs b/src/Shared/Bytes.cs index ad5a62810e..d58f1df93f 100644 --- a/src/Shared/Bytes.cs +++ b/src/Shared/Bytes.cs @@ -63,7 +63,7 @@ private static byte[] GetData(Stream stream, out int length) if (stream is MemoryStream memStream) return GetDataFromMemoryStream(memStream, out length); - Throw.IfFalse(nameof(stream), stream.CanRead, "The stream is not readable."); + Throw.IfFalse(stream.CanRead, nameof(stream), "The stream is not readable."); if (stream.CanSeek) return GetDataWithSeekableStream(stream, out length); @@ -92,7 +92,7 @@ private static byte[] GetData(Stream stream, out int length) return (bytes, length); } - Throw.IfFalse(nameof(stream), stream.CanRead, "The stream is not readable."); + Throw.IfFalse(stream.CanRead, nameof(stream), "The stream is not readable."); if (stream.CanSeek) return await GetDataWithSeekableStreamAsync(stream, cancellationToken).ConfigureAwait(false); @@ -177,7 +177,7 @@ private static byte[] GetDataFromMemoryStream(MemoryStream memStream, out int le } private static void CheckLength(long length) - => Throw.IfFalse(nameof(length), IsSupportedLength(length), "Streams with a length larger than {0} are not supported, read from file instead.", int.MaxValue); + => Throw.IfFalse(IsSupportedLength(length), nameof(length), "Streams with a length larger than {0} are not supported, read from file instead.", int.MaxValue); private static bool IsSupportedLength(long length) => length <= int.MaxValue; diff --git a/src/Shared/FileHelper.cs b/src/Shared/FileHelper.cs index d5271d2b8a..ef97db33e2 100644 --- a/src/Shared/FileHelper.cs +++ b/src/Shared/FileHelper.cs @@ -27,7 +27,7 @@ public static string GetFullPath(string path) path = CheckForBaseDirectory(path); path = Path.GetFullPath(path); - Throw.IfFalse(nameof(path), Directory.Exists(path), "Unable to find directory: {0}", path); + Throw.IfFalse(Directory.Exists(path), nameof(path), "Unable to find directory: {0}", path); return path; } diff --git a/src/Shared/Throw.cs b/src/Shared/Throw.cs index fa8e65eb8f..141479783c 100644 --- a/src/Shared/Throw.cs +++ b/src/Shared/Throw.cs @@ -11,13 +11,13 @@ namespace ImageMagick; internal static partial class Throw { - public static void IfFalse(string paramName, bool condition, string message) + public static void IfFalse(bool condition, string paramName, string message) { if (!condition) throw new ArgumentException(message, paramName); } - public static void IfFalse(string paramName, bool condition, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0) + public static void IfFalse(bool condition, string paramName, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0) { if (!condition) throw new ArgumentException(FormatMessage(message, arg0), paramName); From cde54f4609203e3ba91fe0a6fc9b390b4f08fd4d Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Mon, 20 Jan 2025 12:37:29 +0300 Subject: [PATCH 04/11] Fix issues after merge. --- src/Magick.NET/Statistics/PerceptualHash.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Magick.NET/Statistics/PerceptualHash.cs b/src/Magick.NET/Statistics/PerceptualHash.cs index 849007d015..5b6ce92f0e 100644 --- a/src/Magick.NET/Statistics/PerceptualHash.cs +++ b/src/Magick.NET/Statistics/PerceptualHash.cs @@ -35,7 +35,7 @@ public PerceptualHash(string hash, params ColorSpace[] colorSpaces) ValidateColorSpaces(colorSpaces); var length = 35 * colorSpaces.Length; - Throw.IfFalse(nameof(hash), hash.Length == 3 * length, "Invalid hash size."); + Throw.IfFalse(hash.Length == 3 * length, nameof(hash), "Invalid hash size."); _red = new ChannelPerceptualHash(PixelChannel.Red, colorSpaces, hash.Substring(0, length)); _green = new ChannelPerceptualHash(PixelChannel.Green, colorSpaces, hash.Substring(length, length)); @@ -72,7 +72,7 @@ private PerceptualHash(ChannelPerceptualHash red, ChannelPerceptualHash green, C /// The sum squared difference between this hash and the other hash. public double SumSquaredDistance(IPerceptualHash other) { - Throw.IfNull(nameof(other), other); + Throw.IfNull(other); var red = other.GetChannel(PixelChannel.Red); var green = other.GetChannel(PixelChannel.Green); @@ -115,9 +115,9 @@ internal static void DisposeList(IntPtr list) internal static void ValidateColorSpaces(ColorSpace[] colorSpaces) { - Throw.IfNull(nameof(colorSpaces), colorSpaces); - Throw.IfOutOfRange(nameof(colorSpaces), 1, 6, colorSpaces.Length, "Invalid number of colorspaces, the minimum is 1 and the maximum is 6."); - Throw.IfFalse(nameof(colorSpaces), colorSpaces.Distinct().Count() == colorSpaces.Length, "Specifying the same colorspace more than once is not allowed."); + Throw.IfNull(colorSpaces); + Throw.IfOutOfRange(1, 6, colorSpaces.Length, nameof(colorSpaces), "Invalid number of colorspaces, the minimum is 1 and the maximum is 6."); + Throw.IfFalse(colorSpaces.Distinct().Count() == colorSpaces.Length, nameof(colorSpaces), "Specifying the same colorspace more than once is not allowed."); } private static ChannelPerceptualHash CreateChannel(IMagickImage image, ColorSpace[] colorSpaces, IntPtr list, PixelChannel channel) From 9fabdf0666e0eae132e173b8c9422a8cc96aae69 Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Mon, 20 Jan 2025 13:02:38 +0300 Subject: [PATCH 05/11] Fix after merge --- src/Magick.NET/Statistics/PerceptualHash.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Magick.NET/Statistics/PerceptualHash.cs b/src/Magick.NET/Statistics/PerceptualHash.cs index 5b6ce92f0e..91dfa1b01a 100644 --- a/src/Magick.NET/Statistics/PerceptualHash.cs +++ b/src/Magick.NET/Statistics/PerceptualHash.cs @@ -31,7 +31,7 @@ public PerceptualHash(string hash) /// The colorspaces that were used to create this hash. public PerceptualHash(string hash, params ColorSpace[] colorSpaces) { - Throw.IfNullOrEmpty(nameof(hash), hash); + Throw.IfNullOrEmpty(hash); ValidateColorSpaces(colorSpaces); var length = 35 * colorSpaces.Length; From 85851e62a7b8fe74a0c7d1e5077205210b0d28cb Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Tue, 21 Jan 2025 17:29:14 +0300 Subject: [PATCH 06/11] Fixed IfNull message. --- src/Shared/Throw.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Shared/Throw.cs b/src/Shared/Throw.cs index 141479783c..19942043db 100644 --- a/src/Shared/Throw.cs +++ b/src/Shared/Throw.cs @@ -23,7 +23,7 @@ public static void IfFalse(bool condition, string paramName, [StringSyntax(S throw new ArgumentException(FormatMessage(message, arg0), paramName); } - public static void IfNull([NotNull] object? value, [CallerArgumentExpression(nameof(value))] string? paramName = null, string? message = "Must not be null") + public static void IfNull([NotNull] object? value, [CallerArgumentExpression(nameof(value))] string? paramName = null, string? message = null) { if (value is null) throw new ArgumentNullException(paramName, message); From 84ef98b9d46863ad173e8ed61b744b6f2f9b4d5a Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Sun, 26 Jan 2025 22:00:46 +0300 Subject: [PATCH 07/11] Fixed null message cases. --- src/Shared/Throw.cs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/Shared/Throw.cs b/src/Shared/Throw.cs index 19942043db..e9e6d9551e 100644 --- a/src/Shared/Throw.cs +++ b/src/Shared/Throw.cs @@ -26,7 +26,12 @@ public static void IfFalse(bool condition, string paramName, [StringSyntax(S public static void IfNull([NotNull] object? value, [CallerArgumentExpression(nameof(value))] string? paramName = null, string? message = null) { if (value is null) - throw new ArgumentNullException(paramName, message); + { + if (message is null) + throw new ArgumentNullException(paramName); + else + throw new ArgumentNullException(paramName, message); + } } public static void IfNullOrEmpty(Stream value, [CallerArgumentExpression(nameof(value))] string? paramName = null) @@ -80,7 +85,12 @@ public static void IfOutOfRange(int index, uint length, [CallerArgumentExpressio public static void IfOutOfRange(int min, int max, int value, [CallerArgumentExpression(nameof(value))] string? paramName = null, string? message = null) { if (value < min || value > max) - throw new ArgumentOutOfRangeException(paramName, message); + { + if (message is null) + throw new ArgumentOutOfRangeException(paramName); + else + throw new ArgumentOutOfRangeException(paramName, message); + } } public static void IfOutOfRange(int min, int max, int value, string message, T arg0, [CallerArgumentExpression(nameof(value))] string? paramName = null) @@ -103,7 +113,12 @@ public static void IfOutOfRange(Percentage value, [CallerArgumentExpression(name public static void IfTrue(bool condition, [CallerArgumentExpression(nameof(condition))] string? paramName = null, string? message = null) { if (condition) - throw new ArgumentException(message, paramName); + { + if (message is null) + throw new ArgumentException(paramName); + else + throw new ArgumentException(paramName, message); + } } public static void IfTrue(bool condition, string paramName, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0) From 480e485ef337df31d23f1e9d38ba6b0487a258ee Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Mon, 27 Jan 2025 11:31:27 +0300 Subject: [PATCH 08/11] Reverted unrelated changes --- .../ImageOptimizers/ImageOptimizer.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs b/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs index d651836b9f..6728cb83c4 100644 --- a/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs +++ b/src/Magick.NET/ImageOptimizers/ImageOptimizer.cs @@ -1,9 +1,9 @@ // Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. // Licensed under the Apache License, Version 2.0. +using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; -using System.Linq; using ImageMagick.ImageOptimizers; namespace ImageMagick; @@ -27,7 +27,20 @@ public sealed class ImageOptimizer /// public bool OptimalCompression { get; set; } - private string SupportedFormats => string.Join(", ", _optimizers.Select(o => o.Format.ModuleFormat.ToString())); + private string SupportedFormats + { + get + { + var formats = new List(_optimizers.Count); + + foreach (var optimizer in _optimizers) + { + formats.Add(optimizer.Format.ModuleFormat.ToString()); + } + + return string.Join(", ", formats.ToArray()); + } + } /// /// Performs compression on the specified file. With some formats the image will be decoded From fbb42b31a198c02bd091f50cbb6970cc77bc850f Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Mon, 27 Jan 2025 11:35:56 +0300 Subject: [PATCH 09/11] Removed StringSyntaxAttribute --- src/Magick.NET.Core/Magick.NET.Core.csproj | 1 - .../Magick.NET.SystemDrawing.csproj | 1 - .../Magick.NET.SystemWindowsMedia.csproj | 1 - src/Magick.NET/Magick.NET.csproj | 1 - src/Shared/StringSyntaxAttribute.cs | 68 ------------------- src/Shared/Throw.cs | 6 +- 6 files changed, 3 insertions(+), 75 deletions(-) delete mode 100644 src/Shared/StringSyntaxAttribute.cs diff --git a/src/Magick.NET.Core/Magick.NET.Core.csproj b/src/Magick.NET.Core/Magick.NET.Core.csproj index 6bda0dabb4..8115652b94 100644 --- a/src/Magick.NET.Core/Magick.NET.Core.csproj +++ b/src/Magick.NET.Core/Magick.NET.Core.csproj @@ -22,7 +22,6 @@ - diff --git a/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj b/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj index 00b9f683f1..2193d39d08 100644 --- a/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj +++ b/src/Magick.NET.SystemDrawing/Magick.NET.SystemDrawing.csproj @@ -27,7 +27,6 @@ - diff --git a/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj b/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj index 3b60171d5c..942d86efd0 100644 --- a/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj +++ b/src/Magick.NET.SystemWindowsMedia/Magick.NET.SystemWindowsMedia.csproj @@ -20,7 +20,6 @@ - diff --git a/src/Magick.NET/Magick.NET.csproj b/src/Magick.NET/Magick.NET.csproj index 59b674565e..f7f6b14e13 100644 --- a/src/Magick.NET/Magick.NET.csproj +++ b/src/Magick.NET/Magick.NET.csproj @@ -77,7 +77,6 @@ - diff --git a/src/Shared/StringSyntaxAttribute.cs b/src/Shared/StringSyntaxAttribute.cs deleted file mode 100644 index f75e1cc2ec..0000000000 --- a/src/Shared/StringSyntaxAttribute.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. -// Licensed under the Apache License, Version 2.0. - -#if NETSTANDARD2_0 || NET462 -namespace System.Diagnostics.CodeAnalysis; - -/// Specifies the syntax used in a string. -[AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = false)] -internal sealed class StringSyntaxAttribute : Attribute -{ - /// The syntax identifier for strings containing composite formats for string formatting. - public const string CompositeFormat = nameof(CompositeFormat); - - /// The syntax identifier for strings containing date format specifiers. - public const string DateOnlyFormat = nameof(DateOnlyFormat); - - /// The syntax identifier for strings containing date and time format specifiers. - public const string DateTimeFormat = nameof(DateTimeFormat); - - /// The syntax identifier for strings containing format specifiers. - public const string EnumFormat = nameof(EnumFormat); - - /// The syntax identifier for strings containing format specifiers. - public const string GuidFormat = nameof(GuidFormat); - - /// The syntax identifier for strings containing JavaScript Object Notation (JSON). - public const string Json = nameof(Json); - - /// The syntax identifier for strings containing numeric format specifiers. - public const string NumericFormat = nameof(NumericFormat); - - /// The syntax identifier for strings containing regular expressions. - public const string Regex = nameof(Regex); - - /// The syntax identifier for strings containing time format specifiers. - public const string TimeOnlyFormat = nameof(TimeOnlyFormat); - - /// The syntax identifier for strings containing format specifiers. - public const string TimeSpanFormat = nameof(TimeSpanFormat); - - /// The syntax identifier for strings containing URIs. - public const string Uri = nameof(Uri); - - /// The syntax identifier for strings containing XML. - public const string Xml = nameof(Xml); - - /// The syntax identifier. - public StringSyntaxAttribute(string syntax) - { - Syntax = syntax; - Arguments = Array.Empty(); - } - - /// The syntax identifier. - /// Optional arguments associated with the specific syntax employed. - public StringSyntaxAttribute(string syntax, params object?[] arguments) - { - Syntax = syntax; - Arguments = arguments; - } - - /// Gets the identifier of the syntax used. - public string Syntax { get; } - - /// Gets the optional arguments associated with the specific syntax employed. - public object?[] Arguments { get; } -} -#endif diff --git a/src/Shared/Throw.cs b/src/Shared/Throw.cs index e9e6d9551e..b00cfc135f 100644 --- a/src/Shared/Throw.cs +++ b/src/Shared/Throw.cs @@ -17,7 +17,7 @@ public static void IfFalse(bool condition, string paramName, string message) throw new ArgumentException(message, paramName); } - public static void IfFalse(bool condition, string paramName, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0) + public static void IfFalse(bool condition, string paramName, string message, T0 arg0) { if (!condition) throw new ArgumentException(FormatMessage(message, arg0), paramName); @@ -121,13 +121,13 @@ public static void IfTrue(bool condition, [CallerArgumentExpression(nameof(condi } } - public static void IfTrue(bool condition, string paramName, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0) + public static void IfTrue(bool condition, string paramName, string message, T0 arg0) { if (condition) throw new ArgumentException(FormatMessage(message, arg0), paramName); } - public static void IfTrue(bool condition, string paramName, [StringSyntax(StringSyntaxAttribute.CompositeFormat)] string message, T0 arg0, T1 arg1) + public static void IfTrue(bool condition, string paramName, string message, T0 arg0, T1 arg1) { if (condition) throw new ArgumentException(FormatMessage(message, arg0, arg1), paramName); From 2929e5b1d4f7e24562227329f840e7717821864c Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Sun, 2 Feb 2025 13:20:20 +0300 Subject: [PATCH 10/11] FIx exceptions creation --- src/Shared/Throw.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Shared/Throw.cs b/src/Shared/Throw.cs index b00cfc135f..0a1ab1f100 100644 --- a/src/Shared/Throw.cs +++ b/src/Shared/Throw.cs @@ -30,7 +30,7 @@ public static void IfNull([NotNull] object? value, [CallerArgumentExpression(nam if (message is null) throw new ArgumentNullException(paramName); else - throw new ArgumentNullException(paramName, message); + throw new ArgumentNullException(message, paramName); } } @@ -89,7 +89,7 @@ public static void IfOutOfRange(int min, int max, int value, [CallerArgumentExpr if (message is null) throw new ArgumentOutOfRangeException(paramName); else - throw new ArgumentOutOfRangeException(paramName, message); + throw new ArgumentOutOfRangeException(message, paramName); } } @@ -117,7 +117,7 @@ public static void IfTrue(bool condition, [CallerArgumentExpression(nameof(condi if (message is null) throw new ArgumentException(paramName); else - throw new ArgumentException(paramName, message); + throw new ArgumentException(message, paramName); } } From c06a885cb004c40f56597f16b0c23040d409aedd Mon Sep 17 00:00:00 2001 From: Ilia Brahinets Date: Sun, 2 Feb 2025 13:32:54 +0300 Subject: [PATCH 11/11] Fix exceptions creation. --- src/Shared/Throw.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Shared/Throw.cs b/src/Shared/Throw.cs index 0a1ab1f100..149c46bd03 100644 --- a/src/Shared/Throw.cs +++ b/src/Shared/Throw.cs @@ -30,7 +30,7 @@ public static void IfNull([NotNull] object? value, [CallerArgumentExpression(nam if (message is null) throw new ArgumentNullException(paramName); else - throw new ArgumentNullException(message, paramName); + throw new ArgumentNullException(paramName, message); } } @@ -89,7 +89,7 @@ public static void IfOutOfRange(int min, int max, int value, [CallerArgumentExpr if (message is null) throw new ArgumentOutOfRangeException(paramName); else - throw new ArgumentOutOfRangeException(message, paramName); + throw new ArgumentOutOfRangeException(paramName, message); } }