Browse Source

Throw NRE directly in trival contexts (eliminating method call / extra stack entry)

af/merge-core
Jason Nelson 8 years ago
parent
commit
96feac3809
  1. 1
      src/ImageSharp/Formats/Bmp/BmpDecoder.cs
  2. 4
      src/ImageSharp/Formats/Gif/LzwDecoder.cs
  3. 9
      src/ImageSharp/ImageFrameCollection.cs
  4. 4
      src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.cs
  5. 3
      src/ImageSharp/MetaData/Profiles/ICC/MultiProcessElements/IccClutProcessElement.cs
  6. 3
      src/ImageSharp/MetaData/Profiles/ICC/MultiProcessElements/IccCurveSetProcessElement.cs
  7. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccDataTagDataEntry.cs
  8. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccFix16ArrayTagDataEntry.cs
  9. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccMultiLocalizedUnicodeTagDataEntry.cs
  10. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccProfileSequenceDescTagDataEntry.cs
  11. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccProfileSequenceIdentifierTagDataEntry.cs
  12. 4
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccScreeningTagDataEntry.cs
  13. 5
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccSignatureTagDataEntry.cs
  14. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccTextTagDataEntry.cs
  15. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUFix16ArrayTagDataEntry.cs
  16. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUInt16ArrayTagDataEntry.cs
  17. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUInt32ArrayTagDataEntry.cs
  18. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUInt64ArrayTagDataEntry.cs
  19. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUInt8ArrayTagDataEntry.cs
  20. 10
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUcrBgTagDataEntry.cs
  21. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUnknownTagDataEntry.cs
  22. 3
      src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccXyzTagDataEntry.cs
  23. 4
      src/ImageSharp/MetaData/Profiles/ICC/Various/IccColorantTableEntry.cs
  24. 7
      src/ImageSharp/MetaData/Profiles/ICC/Various/IccLocalizedString.cs
  25. 3
      src/ImageSharp/MetaData/Profiles/ICC/Various/IccLut.cs
  26. 4
      src/ImageSharp/Processing/Processors/Binarization/BinaryOrderedDitherProcessor.cs
  27. 3
      src/ImageSharp/Processing/Processors/Dithering/OrderedDitherPaletteProcessor.cs
  28. 4
      src/ImageSharp/Processing/Processors/Dithering/PaletteDitherProcessorBase.cs

1
src/ImageSharp/Formats/Bmp/BmpDecoder.cs

@ -25,7 +25,6 @@ namespace SixLabors.ImageSharp.Formats.Bmp
{ {
/// <inheritdoc/> /// <inheritdoc/>
public Image<TPixel> Decode<TPixel>(Configuration configuration, Stream stream) public Image<TPixel> Decode<TPixel>(Configuration configuration, Stream stream)
where TPixel : struct, IPixel<TPixel> where TPixel : struct, IPixel<TPixel>
{ {
Guard.NotNull(stream, nameof(stream)); Guard.NotNull(stream, nameof(stream));

4
src/ImageSharp/Formats/Gif/LzwDecoder.cs

@ -56,9 +56,7 @@ namespace SixLabors.ImageSharp.Formats.Gif
/// <exception cref="System.ArgumentNullException"><paramref name="stream"/> is null.</exception> /// <exception cref="System.ArgumentNullException"><paramref name="stream"/> is null.</exception>
public LzwDecoder(MemoryAllocator memoryAllocator, Stream stream) public LzwDecoder(MemoryAllocator memoryAllocator, Stream stream)
{ {
Guard.NotNull(stream, nameof(stream)); this.stream = stream ?? throw new ArgumentNullException(nameof(stream));
this.stream = stream;
this.prefix = memoryAllocator.Allocate<int>(MaxStackSize, AllocationOptions.Clean); this.prefix = memoryAllocator.Allocate<int>(MaxStackSize, AllocationOptions.Clean);
this.suffix = memoryAllocator.Allocate<int>(MaxStackSize, AllocationOptions.Clean); this.suffix = memoryAllocator.Allocate<int>(MaxStackSize, AllocationOptions.Clean);

9
src/ImageSharp/ImageFrameCollection.cs

@ -7,7 +7,6 @@ using System.Collections.Generic;
using SixLabors.ImageSharp.Advanced; using SixLabors.ImageSharp.Advanced;
using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Memory;
namespace SixLabors.ImageSharp namespace SixLabors.ImageSharp
{ {
@ -23,9 +22,7 @@ namespace SixLabors.ImageSharp
internal ImageFrameCollection(Image<TPixel> parent, int width, int height, TPixel backgroundColor) internal ImageFrameCollection(Image<TPixel> parent, int width, int height, TPixel backgroundColor)
{ {
Guard.NotNull(parent, nameof(parent)); this.parent = parent ?? throw new ArgumentNullException(nameof(parent));
this.parent = parent;
// Frames are already cloned within the caller // Frames are already cloned within the caller
this.frames.Add(new ImageFrame<TPixel>(parent.GetConfiguration(), width, height, backgroundColor)); this.frames.Add(new ImageFrame<TPixel>(parent.GetConfiguration(), width, height, backgroundColor));
@ -33,9 +30,7 @@ namespace SixLabors.ImageSharp
internal ImageFrameCollection(Image<TPixel> parent, int width, int height, MemorySource<TPixel> memorySource) internal ImageFrameCollection(Image<TPixel> parent, int width, int height, MemorySource<TPixel> memorySource)
{ {
Guard.NotNull(parent, nameof(parent)); this.parent = parent ?? throw new ArgumentNullException(nameof(parent));
this.parent = parent;
// Frames are already cloned within the caller // Frames are already cloned within the caller
this.frames.Add(new ImageFrame<TPixel>(parent.GetConfiguration(), width, height, memorySource)); this.frames.Add(new ImageFrame<TPixel>(parent.GetConfiguration(), width, height, memorySource));

4
src/ImageSharp/MetaData/Profiles/ICC/DataReader/IccDataReader.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System;
using System.Text; using System.Text;
namespace SixLabors.ImageSharp.MetaData.Profiles.Icc namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
@ -28,8 +29,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// <param name="data">The data to read</param> /// <param name="data">The data to read</param>
public IccDataReader(byte[] data) public IccDataReader(byte[] data)
{ {
Guard.NotNull(data, nameof(data)); this.data = data ?? throw new ArgumentNullException(nameof(data));
this.data = data;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/MultiProcessElements/IccClutProcessElement.cs

@ -17,8 +17,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccClutProcessElement(IccClut clutValue) public IccClutProcessElement(IccClut clutValue)
: base(IccMultiProcessElementSignature.Clut, clutValue?.InputChannelCount ?? 1, clutValue?.OutputChannelCount ?? 1) : base(IccMultiProcessElementSignature.Clut, clutValue?.InputChannelCount ?? 1, clutValue?.OutputChannelCount ?? 1)
{ {
Guard.NotNull(clutValue, nameof(clutValue)); this.ClutValue = clutValue ?? throw new ArgumentNullException(nameof(clutValue));
this.ClutValue = clutValue;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/MultiProcessElements/IccCurveSetProcessElement.cs

@ -18,8 +18,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccCurveSetProcessElement(IccOneDimensionalCurve[] curves) public IccCurveSetProcessElement(IccOneDimensionalCurve[] curves)
: base(IccMultiProcessElementSignature.CurveSet, curves?.Length ?? 1, curves?.Length ?? 1) : base(IccMultiProcessElementSignature.CurveSet, curves?.Length ?? 1, curves?.Length ?? 1)
{ {
Guard.NotNull(curves, nameof(curves)); this.Curves = curves ?? throw new ArgumentNullException(nameof(curves));
this.Curves = curves;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccDataTagDataEntry.cs

@ -42,8 +42,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccDataTagDataEntry(byte[] data, bool isAscii, IccProfileTag tagSignature) public IccDataTagDataEntry(byte[] data, bool isAscii, IccProfileTag tagSignature)
: base(IccTypeSignature.Data, tagSignature) : base(IccTypeSignature.Data, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentException(nameof(data));
this.Data = data;
this.IsAscii = isAscii; this.IsAscii = isAscii;
} }

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccFix16ArrayTagDataEntry.cs

@ -27,8 +27,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccFix16ArrayTagDataEntry(float[] data, IccProfileTag tagSignature) public IccFix16ArrayTagDataEntry(float[] data, IccProfileTag tagSignature)
: base(IccTypeSignature.S15Fixed16Array, tagSignature) : base(IccTypeSignature.S15Fixed16Array, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentNullException(nameof(data));
this.Data = data;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccMultiLocalizedUnicodeTagDataEntry.cs

@ -29,8 +29,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccMultiLocalizedUnicodeTagDataEntry(IccLocalizedString[] texts, IccProfileTag tagSignature) public IccMultiLocalizedUnicodeTagDataEntry(IccLocalizedString[] texts, IccProfileTag tagSignature)
: base(IccTypeSignature.MultiLocalizedUnicode, tagSignature) : base(IccTypeSignature.MultiLocalizedUnicode, tagSignature)
{ {
Guard.NotNull(texts, nameof(texts)); this.Texts = texts ?? throw new ArgumentNullException(nameof(texts));
this.Texts = texts;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccProfileSequenceDescTagDataEntry.cs

@ -30,8 +30,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccProfileSequenceDescTagDataEntry(IccProfileDescription[] descriptions, IccProfileTag tagSignature) public IccProfileSequenceDescTagDataEntry(IccProfileDescription[] descriptions, IccProfileTag tagSignature)
: base(IccTypeSignature.ProfileSequenceDesc, tagSignature) : base(IccTypeSignature.ProfileSequenceDesc, tagSignature)
{ {
Guard.NotNull(descriptions, nameof(descriptions)); this.Descriptions = descriptions ?? throw new ArgumentNullException(nameof(descriptions));
this.Descriptions = descriptions;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccProfileSequenceIdentifierTagDataEntry.cs

@ -28,8 +28,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccProfileSequenceIdentifierTagDataEntry(IccProfileSequenceIdentifier[] data, IccProfileTag tagSignature) public IccProfileSequenceIdentifierTagDataEntry(IccProfileSequenceIdentifier[] data, IccProfileTag tagSignature)
: base(IccTypeSignature.ProfileSequenceIdentifier, tagSignature) : base(IccTypeSignature.ProfileSequenceIdentifier, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentNullException(nameof(data));
this.Data = data;
} }
/// <summary> /// <summary>

4
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccScreeningTagDataEntry.cs

@ -30,10 +30,8 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccScreeningTagDataEntry(IccScreeningFlag flags, IccScreeningChannel[] channels, IccProfileTag tagSignature) public IccScreeningTagDataEntry(IccScreeningFlag flags, IccScreeningChannel[] channels, IccProfileTag tagSignature)
: base(IccTypeSignature.Screening, tagSignature) : base(IccTypeSignature.Screening, tagSignature)
{ {
Guard.NotNull(channels, nameof(channels));
this.Flags = flags; this.Flags = flags;
this.Channels = channels; this.Channels = channels ?? throw new ArgumentNullException(nameof(channels));
} }
/// <summary> /// <summary>

5
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccSignatureTagDataEntry.cs

@ -28,12 +28,11 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccSignatureTagDataEntry(string signatureData, IccProfileTag tagSignature) public IccSignatureTagDataEntry(string signatureData, IccProfileTag tagSignature)
: base(IccTypeSignature.Signature, tagSignature) : base(IccTypeSignature.Signature, tagSignature)
{ {
Guard.NotNull(signatureData, nameof(signatureData)); this.SignatureData = signatureData ?? throw new ArgumentNullException(nameof(signatureData));
this.SignatureData = signatureData;
} }
/// <summary> /// <summary>
/// Gets the Signature /// Gets the signature data
/// </summary> /// </summary>
public string SignatureData { get; } public string SignatureData { get; }

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccTextTagDataEntry.cs

@ -27,8 +27,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccTextTagDataEntry(string text, IccProfileTag tagSignature) public IccTextTagDataEntry(string text, IccProfileTag tagSignature)
: base(IccTypeSignature.Text, tagSignature) : base(IccTypeSignature.Text, tagSignature)
{ {
Guard.NotNull(text, nameof(text)); this.Text = text ?? throw new ArgumentNullException(nameof(text));
this.Text = text;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUFix16ArrayTagDataEntry.cs

@ -27,8 +27,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccUFix16ArrayTagDataEntry(float[] data, IccProfileTag tagSignature) public IccUFix16ArrayTagDataEntry(float[] data, IccProfileTag tagSignature)
: base(IccTypeSignature.U16Fixed16Array, tagSignature) : base(IccTypeSignature.U16Fixed16Array, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentNullException(nameof(data));
this.Data = data;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUInt16ArrayTagDataEntry.cs

@ -27,8 +27,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccUInt16ArrayTagDataEntry(ushort[] data, IccProfileTag tagSignature) public IccUInt16ArrayTagDataEntry(ushort[] data, IccProfileTag tagSignature)
: base(IccTypeSignature.UInt16Array, tagSignature) : base(IccTypeSignature.UInt16Array, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentNullException(nameof(data));
this.Data = data;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUInt32ArrayTagDataEntry.cs

@ -27,8 +27,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccUInt32ArrayTagDataEntry(uint[] data, IccProfileTag tagSignature) public IccUInt32ArrayTagDataEntry(uint[] data, IccProfileTag tagSignature)
: base(IccTypeSignature.UInt32Array, tagSignature) : base(IccTypeSignature.UInt32Array, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentNullException(nameof(data));
this.Data = data;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUInt64ArrayTagDataEntry.cs

@ -28,8 +28,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccUInt64ArrayTagDataEntry(ulong[] data, IccProfileTag tagSignature) public IccUInt64ArrayTagDataEntry(ulong[] data, IccProfileTag tagSignature)
: base(IccTypeSignature.UInt64Array, tagSignature) : base(IccTypeSignature.UInt64Array, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentNullException(nameof(data));
this.Data = data;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUInt8ArrayTagDataEntry.cs

@ -27,8 +27,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccUInt8ArrayTagDataEntry(byte[] data, IccProfileTag tagSignature) public IccUInt8ArrayTagDataEntry(byte[] data, IccProfileTag tagSignature)
: base(IccTypeSignature.UInt8Array, tagSignature) : base(IccTypeSignature.UInt8Array, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentNullException(nameof(data));
this.Data = data;
} }
/// <summary> /// <summary>

10
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUcrBgTagDataEntry.cs

@ -32,13 +32,9 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccUcrBgTagDataEntry(ushort[] ucrCurve, ushort[] bgCurve, string description, IccProfileTag tagSignature) public IccUcrBgTagDataEntry(ushort[] ucrCurve, ushort[] bgCurve, string description, IccProfileTag tagSignature)
: base(IccTypeSignature.UcrBg, tagSignature) : base(IccTypeSignature.UcrBg, tagSignature)
{ {
Guard.NotNull(ucrCurve, nameof(ucrCurve)); this.UcrCurve = ucrCurve ?? throw new ArgumentNullException(nameof(ucrCurve));
Guard.NotNull(bgCurve, nameof(bgCurve)); this.BgCurve = bgCurve ?? throw new ArgumentNullException(nameof(bgCurve));
Guard.NotNull(description, nameof(description)); this.Description = description ?? throw new ArgumentNullException(nameof(description));
this.UcrCurve = ucrCurve;
this.BgCurve = bgCurve;
this.Description = description;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccUnknownTagDataEntry.cs

@ -27,8 +27,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccUnknownTagDataEntry(byte[] data, IccProfileTag tagSignature) public IccUnknownTagDataEntry(byte[] data, IccProfileTag tagSignature)
: base(IccTypeSignature.Unknown, tagSignature) : base(IccTypeSignature.Unknown, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentNullException(nameof(data));
this.Data = data;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/TagDataEntries/IccXyzTagDataEntry.cs

@ -28,8 +28,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
public IccXyzTagDataEntry(Vector3[] data, IccProfileTag tagSignature) public IccXyzTagDataEntry(Vector3[] data, IccProfileTag tagSignature)
: base(IccTypeSignature.Xyz, tagSignature) : base(IccTypeSignature.Xyz, tagSignature)
{ {
Guard.NotNull(data, nameof(data)); this.Data = data ?? throw new ArgumentNullException(nameof(data));
this.Data = data;
} }
/// <summary> /// <summary>

4
src/ImageSharp/MetaData/Profiles/ICC/Various/IccColorantTableEntry.cs

@ -28,9 +28,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// <param name="pcs3">Third PCS value</param> /// <param name="pcs3">Third PCS value</param>
public IccColorantTableEntry(string name, ushort pcs1, ushort pcs2, ushort pcs3) public IccColorantTableEntry(string name, ushort pcs1, ushort pcs2, ushort pcs3)
{ {
Guard.NotNull(name, nameof(name)); this.Name = name ?? throw new ArgumentNullException(nameof(name));
this.Name = name;
this.Pcs1 = pcs1; this.Pcs1 = pcs1;
this.Pcs2 = pcs2; this.Pcs2 = pcs2;
this.Pcs3 = pcs3; this.Pcs3 = pcs3;

7
src/ImageSharp/MetaData/Profiles/ICC/Various/IccLocalizedString.cs

@ -29,11 +29,8 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// <param name="text">The text value of this string</param> /// <param name="text">The text value of this string</param>
public IccLocalizedString(CultureInfo culture, string text) public IccLocalizedString(CultureInfo culture, string text)
{ {
Guard.NotNull(culture, nameof(culture)); this.Culture = culture ?? throw new ArgumentNullException(nameof(culture));
Guard.NotNull(text, nameof(text)); this.Text = text ?? throw new ArgumentNullException(nameof(text));
this.Culture = culture;
this.Text = text;
} }
/// <summary> /// <summary>

3
src/ImageSharp/MetaData/Profiles/ICC/Various/IccLut.cs

@ -16,8 +16,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Icc
/// <param name="values">The LUT values</param> /// <param name="values">The LUT values</param>
public IccLut(float[] values) public IccLut(float[] values)
{ {
Guard.NotNull(values, nameof(values)); this.Values = values ?? throw new ArgumentNullException(nameof(values));
this.Values = values;
} }
/// <summary> /// <summary>

4
src/ImageSharp/Processing/Processors/Binarization/BinaryOrderedDitherProcessor.cs

@ -33,9 +33,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Binarization
/// <param name="lowerColor">The color to use for pixels that are below the threshold.</param> /// <param name="lowerColor">The color to use for pixels that are below the threshold.</param>
public BinaryOrderedDitherProcessor(IOrderedDither dither, TPixel upperColor, TPixel lowerColor) public BinaryOrderedDitherProcessor(IOrderedDither dither, TPixel upperColor, TPixel lowerColor)
{ {
Guard.NotNull(dither, nameof(dither)); this.Dither = dither ?? throw new ArgumentNullException(nameof(dither));
this.Dither = dither;
this.UpperColor = upperColor; this.UpperColor = upperColor;
this.LowerColor = lowerColor; this.LowerColor = lowerColor;
} }

3
src/ImageSharp/Processing/Processors/Dithering/OrderedDitherPaletteProcessor.cs

@ -34,8 +34,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
public OrderedDitherPaletteProcessor(IOrderedDither dither, TPixel[] palette) public OrderedDitherPaletteProcessor(IOrderedDither dither, TPixel[] palette)
: base(palette) : base(palette)
{ {
Guard.NotNull(dither, nameof(dither)); this.Dither = dither ?? throw new ArgumentNullException(nameof(dither));
this.Dither = dither;
} }
/// <summary> /// <summary>

4
src/ImageSharp/Processing/Processors/Dithering/PaletteDitherProcessorBase.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors and contributors. // Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Numerics; using System.Numerics;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
@ -28,8 +29,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Dithering
/// <param name="palette">The palette to select substitute colors from.</param> /// <param name="palette">The palette to select substitute colors from.</param>
protected PaletteDitherProcessorBase(TPixel[] palette) protected PaletteDitherProcessorBase(TPixel[] palette)
{ {
Guard.NotNull(palette, nameof(palette)); this.Palette = palette ?? throw new ArgumentNullException(nameof(palette));
this.Palette = palette;
this.paletteVector = new Vector4[this.Palette.Length]; this.paletteVector = new Vector4[this.Palette.Length];
PixelOperations<TPixel>.Instance.ToScaledVector4(this.Palette, this.paletteVector, this.Palette.Length); PixelOperations<TPixel>.Instance.ToScaledVector4(this.Palette, this.paletteVector, this.Palette.Length);
} }

Loading…
Cancel
Save