Browse Source

Review changes

pull/1747/head
Brian Popow 5 years ago
parent
commit
31fa1eac35
  1. 4
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/CcittReferenceScanline.cs
  2. 41
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/CcittTwoDimensionalCodeType.cs
  3. 2
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/DeflateTiffCompression.cs
  4. 2
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/LzwTiffCompression.cs
  5. 2
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/ModifiedHuffmanBitReader.cs
  6. 15
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/ModifiedHuffmanTiffCompression.cs
  7. 2
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/NoneTiffCompression.cs
  8. 2
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/PackBitsTiffCompression.cs
  9. 2
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/T4BitReader.cs
  10. 4
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/T4TiffCompression.cs
  11. 2
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/T6BitReader.cs
  12. 2
      src/ImageSharp/Formats/Tiff/Compression/Decompressors/T6TiffCompression.cs

4
src/ImageSharp/Formats/Tiff/Compression/Decompressors/CcittReferenceScanline.cs

@ -48,7 +48,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <returns>Position of b1.</returns>
public int FindB1(int a0, byte a0Byte)
{
if (this.scanLine.IsEmpty)
if (this.IsEmpty)
{
return this.FindB1ForImaginaryWhiteLine(a0, a0Byte);
}
@ -63,7 +63,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <returns>Position of b1.</returns>
public int FindB2(int b1)
{
if (this.scanLine.IsEmpty)
if (this.IsEmpty)
{
return this.FindB2ForImaginaryWhiteLine();
}

41
src/ImageSharp/Formats/Tiff/Compression/Decompressors/CcittTwoDimensionalCodeType.cs

@ -3,30 +3,71 @@
namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
{
/// <summary>
/// Enum for the different two dimensional code words for the ccitt fax compression.
/// </summary>
internal enum CcittTwoDimensionalCodeType
{
/// <summary>
/// No valid code word was read.
/// </summary>
None = 0,
/// <summary>
/// Pass mode: This mode is identified when the position of b2 lies to the left of a1.
/// </summary>
Pass = 1,
/// <summary>
/// Indicates horizontal mode.
/// </summary>
Horizontal = 2,
/// <summary>
/// Vertical 0 code word: relative distance between a1 and b1 is 0.
/// </summary>
Vertical0 = 3,
/// <summary>
/// Vertical r1 code word: relative distance between a1 and b1 is 1, a1 is to the right of b1.
/// </summary>
VerticalR1 = 4,
/// <summary>
/// Vertical r2 code word: relative distance between a1 and b1 is 2, a1 is to the right of b1.
/// </summary>
VerticalR2 = 5,
/// <summary>
/// Vertical r3 code word: relative distance between a1 and b1 is 3, a1 is to the right of b1.
/// </summary>
VerticalR3 = 6,
/// <summary>
/// Vertical l1 code word: relative distance between a1 and b1 is 1, a1 is to the left of b1.
/// </summary>
VerticalL1 = 7,
/// <summary>
/// Vertical l2 code word: relative distance between a1 and b1 is 2, a1 is to the left of b1.
/// </summary>
VerticalL2 = 8,
/// <summary>
/// Vertical l3 code word: relative distance between a1 and b1 is 3, a1 is to the left of b1.
/// </summary>
VerticalL3 = 9,
/// <summary>
/// 1d extensions code word, extension code is used to indicate the change from the current mode to another mode, e.g., another coding scheme.
/// Not supported.
/// </summary>
Extensions1D = 10,
/// <summary>
/// 2d extensions code word, extension code is used to indicate the change from the current mode to another mode, e.g., another coding scheme.
/// Not supported.
/// </summary>
Extensions2D = 11,
}
}

2
src/ImageSharp/Formats/Tiff/Compression/Decompressors/DeflateTiffCompression.cs

@ -18,7 +18,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <remarks>
/// Note that the 'OldDeflate' compression type is identical to the 'Deflate' compression type.
/// </remarks>
internal class DeflateTiffCompression : TiffBaseDecompressor
internal sealed class DeflateTiffCompression : TiffBaseDecompressor
{
private readonly bool isBigEndian;

2
src/ImageSharp/Formats/Tiff/Compression/Decompressors/LzwTiffCompression.cs

@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <summary>
/// Class to handle cases where TIFF image data is compressed using LZW compression.
/// </summary>
internal class LzwTiffCompression : TiffBaseDecompressor
internal sealed class LzwTiffCompression : TiffBaseDecompressor
{
private readonly bool isBigEndian;

2
src/ImageSharp/Formats/Tiff/Compression/Decompressors/ModifiedHuffmanBitReader.cs

@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// Bit reader for data encoded with the modified huffman rle method.
/// See TIFF 6.0 specification, section 10.
/// </summary>
internal class ModifiedHuffmanBitReader : T4BitReader
internal sealed class ModifiedHuffmanBitReader : T4BitReader
{
/// <summary>
/// Initializes a new instance of the <see cref="ModifiedHuffmanBitReader"/> class.

15
src/ImageSharp/Formats/Tiff/Compression/Decompressors/ModifiedHuffmanTiffCompression.cs

@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <summary>
/// Class to handle cases where TIFF image data is compressed using Modified Huffman Compression.
/// </summary>
internal class ModifiedHuffmanTiffCompression : T4TiffCompression
internal sealed class ModifiedHuffmanTiffCompression : TiffBaseDecompressor
{
private readonly byte whiteValue;
@ -27,13 +27,19 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <param name="bitsPerPixel">The number of bits per pixel.</param>
/// <param name="photometricInterpretation">The photometric interpretation.</param>
public ModifiedHuffmanTiffCompression(MemoryAllocator allocator, TiffFillOrder fillOrder, int width, int bitsPerPixel, TiffPhotometricInterpretation photometricInterpretation)
: base(allocator, fillOrder, width, bitsPerPixel, FaxCompressionOptions.None, photometricInterpretation)
: base(allocator, width, bitsPerPixel)
{
this.FillOrder = fillOrder;
bool isWhiteZero = photometricInterpretation == TiffPhotometricInterpretation.WhiteIsZero;
this.whiteValue = (byte)(isWhiteZero ? 0 : 1);
this.blackValue = (byte)(isWhiteZero ? 1 : 0);
}
/// <summary>
/// Gets the logical order of bits within a byte.
/// </summary>
private TiffFillOrder FillOrder { get; }
/// <inheritdoc/>
protected override void Decompress(BufferedReadStream stream, int byteCount, int stripHeight, Span<byte> buffer)
{
@ -81,5 +87,10 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
}
}
}
/// <inheritdoc/>
protected override void Dispose(bool disposing)
{
}
}
}

2
src/ImageSharp/Formats/Tiff/Compression/Decompressors/NoneTiffCompression.cs

@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <summary>
/// Class to handle cases where TIFF image data is not compressed.
/// </summary>
internal class NoneTiffCompression : TiffBaseDecompressor
internal sealed class NoneTiffCompression : TiffBaseDecompressor
{
/// <summary>
/// Initializes a new instance of the <see cref="NoneTiffCompression" /> class.

2
src/ImageSharp/Formats/Tiff/Compression/Decompressors/PackBitsTiffCompression.cs

@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <summary>
/// Class to handle cases where TIFF image data is compressed using PackBits compression.
/// </summary>
internal class PackBitsTiffCompression : TiffBaseDecompressor
internal sealed class PackBitsTiffCompression : TiffBaseDecompressor
{
private IMemoryOwner<byte> compressedDataMemory;

2
src/ImageSharp/Formats/Tiff/Compression/Decompressors/T4BitReader.cs

@ -438,7 +438,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <returns>The value read.</returns>
protected uint ReadValue(int nBits)
{
Guard.MustBeGreaterThan(nBits, 0, nameof(nBits));
DebugGuard.MustBeGreaterThan(nBits, 0, nameof(nBits));
uint v = 0;
int shift = nBits;

4
src/ImageSharp/Formats/Tiff/Compression/Decompressors/T4TiffCompression.cs

@ -12,7 +12,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <summary>
/// Class to handle cases where TIFF image data is compressed using CCITT T4 compression.
/// </summary>
internal class T4TiffCompression : TiffBaseDecompressor
internal sealed class T4TiffCompression : TiffBaseDecompressor
{
private readonly FaxCompressionOptions faxCompressionOptions;
@ -51,7 +51,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <summary>
/// Gets the logical order of bits within a byte.
/// </summary>
protected TiffFillOrder FillOrder { get; }
private TiffFillOrder FillOrder { get; }
/// <inheritdoc/>
protected override void Decompress(BufferedReadStream stream, int byteCount, int stripHeight, Span<byte> buffer)

2
src/ImageSharp/Formats/Tiff/Compression/Decompressors/T6BitReader.cs

@ -13,7 +13,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// Bit reader for reading CCITT T6 compressed fax data.
/// See: Facsimile Coding Schemes and Coding Control Functions for Group 4 Facsimile Apparatus, itu-t recommendation t.6
/// </summary>
internal class T6BitReader : T4BitReader
internal sealed class T6BitReader : T4BitReader
{
private readonly int maxCodeLength = 12;

2
src/ImageSharp/Formats/Tiff/Compression/Decompressors/T6TiffCompression.cs

@ -11,7 +11,7 @@ namespace SixLabors.ImageSharp.Formats.Tiff.Compression.Decompressors
/// <summary>
/// Class to handle cases where TIFF image data is compressed using CCITT T6 compression.
/// </summary>
internal class T6TiffCompression : TiffBaseDecompressor
internal sealed class T6TiffCompression : TiffBaseDecompressor
{
private readonly bool isWhiteZero;

Loading…
Cancel
Save