inner-pipe

This commit is contained in:
Renjaya Raga Zenta 2025-07-27 20:19:12 +07:00
parent c92383721d
commit 8b10c3b27e

View file

@ -1,3 +1,4 @@
using System.Buffers;
using System.IO.Pipelines;
using Microsoft.AspNetCore.Http.Json;
using NetVips;
@ -34,7 +35,28 @@ app.MapPost("/api/image/generate", (Stitch request) =>
try
{
using Image image = Tile.Create(in request, tilesDirectory, images, logger);
image.WriteToStream(pipe.Writer.AsStream(), ".png");
Pipe innerPipe = new();
_ = Task.Run(async () =>
{
while( true )
{
ReadResult result = await innerPipe.Reader.ReadAsync();
ReadOnlySequence<byte> buffer = result.Buffer;
if(!buffer.IsEmpty )
{
foreach( ReadOnlyMemory<byte> segment in buffer )
{
await pipe.Writer.WriteAsync(segment);
}
innerPipe.Reader.AdvanceTo(buffer.End);
if (result.IsCompleted)
{
break;
}
}
}
});
image.WriteToStream(innerPipe.Writer.AsStream(), ".png");
}
catch( Exception e )
{