StitchATon2/App/Utils.cs

33 lines
No EOL
1 KiB
C#

using System.IO.Pipelines;
using StitchATon2.App.Models;
using StitchATon2.Domain;
using StitchATon2.Domain.ImageCreators;
namespace StitchATon2.App;
public static class Utils
{
public static GridSection CreateSection(this TileManager manager, GenerateImageDto dto)
=> manager.CreateSection(
dto.CanvasRect!,
dto.CropOffset![0],
dto.CropOffset![1],
dto.CropSize![0],
dto.CropSize![1]);
public static async Task WriteToStream(this GridSection section, Stream stream, float? scale)
{
var imageCreator = new ImageCreator(section);
await imageCreator.WriteToStream(stream, scale!.Value);
}
public static async Task DangerousWriteToPipe(
this GridSection section,
PipeWriter pipeWriter,
float? scale,
CancellationToken cancellationToken = default)
{
var imageCreator = new DangerousImageCreator(section);
await imageCreator.WriteToPipe(pipeWriter, scale!.Value, cancellationToken);
}
}