Browse Source

oops the MemoryStream

pull/1296/head
Anton Firszov 6 years ago
parent
commit
f2f3a30bf7
  1. 8
      src/ImageSharp/Formats/ImageEncoderUtilities.cs

8
src/ImageSharp/Formats/ImageEncoderUtilities.cs

@ -22,22 +22,22 @@ namespace SixLabors.ImageSharp.Formats
Configuration configuration = image.GetConfiguration(); Configuration configuration = image.GetConfiguration();
if (stream.CanSeek) if (stream.CanSeek)
{ {
await DoEncodeAsync(); await DoEncodeAsync(stream);
} }
else else
{ {
using var ms = new MemoryStream(); using var ms = new MemoryStream();
await DoEncodeAsync(); await DoEncodeAsync(ms);
ms.Position = 0; ms.Position = 0;
await ms.CopyToAsync(stream, configuration.StreamProcessingBufferSize, cancellationToken) await ms.CopyToAsync(stream, configuration.StreamProcessingBufferSize, cancellationToken)
.ConfigureAwait(false); .ConfigureAwait(false);
} }
Task DoEncodeAsync() Task DoEncodeAsync(Stream innerStream)
{ {
try try
{ {
encoder.Encode(image, stream, cancellationToken); encoder.Encode(image, innerStream, cancellationToken);
return Task.CompletedTask; return Task.CompletedTask;
} }
catch (OperationCanceledException) catch (OperationCanceledException)

Loading…
Cancel
Save