private async Task CreateCollage()

in services/collage/csharp/Startup.cs [101:123]


        private async Task CreateCollage(List<MemoryStream> memoryStreams, string bucket, ILogger logger)
        {
            memoryStreams.ForEach(memoryStream => memoryStream.Position = 0);
            using (var img0 = Image.Load(memoryStreams[0]))
            using (var img1 = Image.Load(memoryStreams[1]))
            using (var img2 = Image.Load(memoryStreams[2]))
            using (var img3 = Image.Load(memoryStreams[3]))
            using (var outputStream = new MemoryStream())
            using (var outputImage = new Image<Rgba32>(800, 800))
            {
                outputImage.Mutate(o => o
                    .DrawImage(img0, new Point(0, 0), 1f)
                    .DrawImage(img1, new Point(400, 0), 1f)
                    .DrawImage(img2, new Point(0, 400), 1f)
                    .DrawImage(img3, new Point(400, 400), 1f)
                );
                outputImage.SaveAsPng(outputStream);
                logger.LogInformation("Created local collage picture");

                var client = await StorageClient.CreateAsync();
                await client.UploadObjectAsync(bucket, "collage.png", "image/png", outputStream);
            }
        }