Browse Source

Remove TiffUtils, use Stream extensions instead

pull/1570/head
Brian Popow 5 years ago
parent
commit
f2c262dc22
  1. 2
      src/ImageSharp/Formats/Tiff/Compression/DeflateTiffCompression.cs
  2. 2
      src/ImageSharp/Formats/Tiff/Compression/NoneTiffCompression.cs
  3. 2
      src/ImageSharp/Formats/Tiff/Compression/PackBitsTiffCompression.cs
  4. 2
      src/ImageSharp/Formats/Tiff/Compression/T4BitReader.cs
  5. 54
      src/ImageSharp/Formats/Tiff/Utils/TiffUtils.cs

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

@ -60,7 +60,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
var subStream = new SubStream(stream, byteCount - headerLength);
using (var deflateStream = new DeflateStream(subStream, CompressionMode.Decompress, true))
{
deflateStream.ReadFull(buffer);
deflateStream.Read(buffer, 0, buffer.Length);
}
if (this.Predictor == TiffPredictor.Horizontal)

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

@ -26,7 +26,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
/// <inheritdoc/>
public override void Decompress(Stream stream, int byteCount, Span<byte> buffer)
{
stream.ReadFull(buffer, byteCount);
stream.Read(buffer, 0, byteCount);
}
}
}

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

@ -31,7 +31,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
Span<byte> compressedData = compressedDataMemory.GetSpan();
stream.ReadFull(compressedData, byteCount);
stream.Read(compressedData, 0, byteCount);
int compressedOffset = 0;
int decompressedOffset = 0;

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

@ -821,7 +821,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
private void ReadImageDataFromStream(Stream input, int bytesToRead)
{
Span<byte> dataSpan = this.Data.GetSpan();
input.ReadFull(dataSpan, bytesToRead);
input.Read(dataSpan, 0, bytesToRead);
}
}
}

54
src/ImageSharp/Formats/Tiff/Utils/TiffUtils.cs

@ -1,54 +0,0 @@
// Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0.
using System;
using System.IO;
namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Utils
{
/// <summary>
/// TIFF specific utilities and extension methods.
/// </summary>
internal static class TiffUtils
{
/// <summary>
/// Reads a sequence of bytes from the input stream into a buffer.
/// </summary>
/// <param name="stream">The stream to read from.</param>
/// <param name="buffer">A buffer to store the retrieved data.</param>
/// <param name="count">The number of bytes to read.</param>
public static void ReadFull(this Stream stream, Span<byte> buffer, int count)
{
int offset = 0;
while (count > 0)
{
int bytesLeftInBuffer = buffer.Length - offset;
if (bytesLeftInBuffer < count)
{
TiffThrowHelper.ThrowImageFormatException("Error reading data from the stream. The provided buffer was too small.");
}
int bytesRead = stream.Read(buffer, offset, count);
if (bytesRead == 0)
{
break;
}
offset += bytesRead;
count -= bytesRead;
}
}
/// <summary>
/// Reads all bytes from the input stream into a buffer until the end of stream or the buffer is full.
/// </summary>
/// <param name="stream">The stream to read from.</param>
/// <param name="buffer">A buffer to store the retrieved data.</param>
public static void ReadFull(this Stream stream, Span<byte> buffer)
{
ReadFull(stream, buffer, buffer.Length);
}
}
}
Loading…
Cancel
Save