This commit is contained in:
Meizar 2025-08-01 06:36:02 +07:00
parent fcb1f741b9
commit ce95630cc6
4 changed files with 28 additions and 17 deletions

View file

@ -11,20 +11,7 @@ internal record Coordinate
public Coordinate(string name) public Coordinate(string name)
{ {
Name = name; Name = name;
int row = 0; (int row, int col) = Helper.ToRowCol(name);
int col = 0;
foreach (var item in name)
{
if (item >= 'A')
{
row = row * 26 + (item - 'A' + 1);
}
else if (item >= '0')
{
col = col * 10 + (item - '0');
}
}
Row = row; Row = row;
Col = col; Col = col;
} }

View file

@ -14,4 +14,23 @@ public static class Helper
} }
return result; return result;
} }
public static (int Row, int Col) ToRowCol(string letters)
{
int row = 0;
int col = 0;
foreach (var item in letters)
{
if (item >= 'A')
{
row = row * 26 + (item - 'A' + 1);
}
else if (item >= '0')
{
col = col * 10 + (item - '0');
}
}
return (row, col);
}
} }

View file

@ -4,7 +4,7 @@ namespace WebApp;
public class ImageGenerator public class ImageGenerator
{ {
public byte[] GenerateImage3(RequestBody requestBody) public byte[] GenerateImage(RequestBody requestBody)
{ {
string[] inputs = requestBody.CanvasRect.Split(":"); string[] inputs = requestBody.CanvasRect.Split(":");
double scale = requestBody.OutputScale; double scale = requestBody.OutputScale;
@ -42,7 +42,12 @@ public class ImageGenerator
mat = mat.Resize(new Size(width, height)); mat = mat.Resize(new Size(width, height));
} }
Rect origin = new Rect((item.Col - 1) * a1Mat.Cols, (item.Row - 1) * a1Mat.Rows, a1Mat.Cols, a1Mat.Rows); Rect origin = new Rect(
(item.Col - 1) * a1Mat.Cols,
(item.Row - 1) * a1Mat.Rows,
a1Mat.Cols,
a1Mat.Rows);
var offset = origin.Location; var offset = origin.Location;
var roi = origin.Intersect(globalRoI); var roi = origin.Intersect(globalRoI);
if (roi.Width == 0 || roi.Height == 0) return; if (roi.Width == 0 || roi.Height == 0) return;

View file

@ -35,7 +35,7 @@ app.MapPost("/api/image/generate",
( RequestBody requestBody ) => ( RequestBody requestBody ) =>
{ {
ImageGenerator imageGenerator = new ImageGenerator(); ImageGenerator imageGenerator = new ImageGenerator();
var png = imageGenerator.GenerateImage3( requestBody ); var png = imageGenerator.GenerateImage( requestBody );
return Results.File(png, "image/png", "result.png"); return Results.File(png, "image/png", "result.png");
}) })
.WithName("ImageGenerator") .WithName("ImageGenerator")