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);
}
}