Сжатие изображений в голубую каплю с ImageMagick - PullRequest
0 голосов
/ 11 сентября 2018

Я пишу функцию Azure для сжатия изображений, загруженных в хранилище BLOB-объектов, и сохранения сжатого изображения в другом BLOB-объекте. Для этого я использую Magick.NET пакет nuget.

[FunctionName("Function1")]
    public static void Run(
        [BlobTrigger("test/{name}", Connection = "")]Stream image,
        [Blob("test-output/{name}", FileAccess.ReadWrite)]CloudBlockBlob output,
        string name,
        TraceWriter log)
    {
        log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {image.Length} Bytes");
        using (MemoryStream memoryStream = new MemoryStream())
        {
            image.CopyTo(memoryStream);
            ImageOptimizer imageOptimizer = new ImageOptimizer();
            imageOptimizer.Compress(memoryStream);
            output.UploadFromStream(memoryStream);
        }
    }

Но следующая строка выдает исключение,

enter image description here

Есть предложения, как это исправить?

1 Ответ

0 голосов
/ 11 сентября 2018

После копирования вам нужно перемотать MemoryStream

image.CopyTo(memoryStream);
memoryStream.Position = 0;

, в противном случае позиция будет в конце данных, и любые операции чтения с ней вернут 0 данных.

...