Make3.Renderer/Make3.RenderServer/TestProjectBackgroundService.cs
2025-04-28 21:30:59 +03:00

61 lines
2.0 KiB
C#

using Domain;
using Domain.Interfaces;
using Make3.RenderServer.Layers;
using SkiaSharp;
namespace Make3.RenderServer;
public class TestProjectBackgroundService : BackgroundService
{
private readonly IServiceProvider _serviceProvider;
private readonly LayerClients.TestLayer.TestLayerClient _testLaterGrpcClient;
public TestProjectBackgroundService(IServiceProvider serviceProvider, LayerClients.TestLayer.TestLayerClient testLaterGrpcClient)
{
_serviceProvider = serviceProvider;
_testLaterGrpcClient = testLaterGrpcClient;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
var dir = @"C:\Users\Ko12A\OneDrive\Изображения";
var image1 = OpenImage(Path.Combine(dir, "01_gettyimages_488111026_resized.jpg"));
var image2 = OpenImage(Path.Combine(dir, "kisspng-bmp-file-for.bmp"));
var image3 = OpenImage(Path.Combine(dir, "Zrzut ekranu 2021-07-20 164131.png"));
var project = new Project
{
Id = Guid.NewGuid(),
Height = Convert.ToUInt32(image1.Width),
Width = Convert.ToUInt32(image2.Width),
Layers = [
new TestLayer(_testLaterGrpcClient)
{
Order = 0,
Image = image1,
OpticalSchema = OpticalSchema.Sp11,
},
new TestLayer(_testLaterGrpcClient)
{
Order = 1,
Image = image2,
Mask = image3,
InvertMask = false,
OpticalSchema = OpticalSchema.Sp11,
},
],
};
using var scope = _serviceProvider.CreateScope();
var renderManager = scope.ServiceProvider.GetRequiredService<IRenderManager>();
var renderId = await renderManager.StartRender(project);
}
private SKBitmap OpenImage(string filename)
{
using SKBitmap bitmap = SKBitmap.Decode(filename);
return bitmap.Copy();
}
}