洁 任 1 month ago
commit d540cefea2

@ -139,6 +139,7 @@ namespace OpenAuth.App.ServiceApp.Algo
//string detectRegionJson = "[[0, 0],[8063, 647],[8017, 7774],[552, 8033]]";
//string url = "http://123.132.248.154:6015/DroneEnforcement/2025/20250514/lQLPJyIVimQWGKnNA4PNA6Gw1D3q5gbxUvQIiumcIx4vAA_929_899.png";
var regionArray = JsonConvert.DeserializeObject<int[][]>(detectRegionJson);
var imaList = data.imgList;
if (oldinfo != null)
{
string compareGroupId = Guid.NewGuid().ToString();
@ -163,7 +164,7 @@ namespace OpenAuth.App.ServiceApp.Algo
{
Console.WriteLine(item.imgUrl);
Console.WriteLine(regionArray);
var imgurlend = await DrawingImgAndUpload(item.imgUrl.ToString().Replace("\\", ""), regionArray, cdid);
var imgurlend = await DrawingImgAndUpload1(item.imgUrl.ToString().Replace("\\", ""), imaList, cdid);
lasaAiAchievementDetail.Image = imgurlend;
}
await db.LasaAiAchievementDetail.InsertAsync(lasaAiAchievementDetail);
@ -181,8 +182,7 @@ namespace OpenAuth.App.ServiceApp.Algo
CreateTime = DateTime.Now,
AiModel = "DaHuaAi",
TaskId = cdid
};
};
foreach (var item in imageList)
{
//插入详情
@ -203,7 +203,7 @@ namespace OpenAuth.App.ServiceApp.Algo
Console.WriteLine(item.imgUrl);
Console.WriteLine(regionArray);
//var imgurlend = await DrawingImgAndUpload(item.imgUrl, regionArray);
var imgurlend = await DrawingImgAndUpload(item.imgUrl.ToString().Replace("\\", ""), regionArray, cdid);
var imgurlend = await DrawingImgAndUpload1(item.imgUrl.ToString().Replace("\\", ""), imaList, cdid);
lasaAiAchievementDetail.Image = imgurlend;
}
lasaAiAchievement.Lat = item.latitude;
@ -282,6 +282,57 @@ namespace OpenAuth.App.ServiceApp.Algo
}
}
}
public async Task<string> DrawingImgAndUpload1(string url, dynamic rects, string cdid)
{
try
{
Console.WriteLine(url);
// 下载图片
//url = "http://123.132.248.154:6015/DroneEnforcement/2025/20250514/localStorage.jpg";
using var stream = await httpClient.GetStreamAsync(url);
using var image = Image.FromStream(stream);
using var g = Graphics.FromImage(image);
using var pen = new Pen(Color.Red, 5); // 红色粗线
float scaleX = image.Width / STANDARD_WIDTH;
float scaleY = image.Height / STANDARD_HEIGHT;
foreach (var item in rects)
{
// 画框
foreach (var rect in item.objectRect)
{
Console.WriteLine(JsonConvert.SerializeObject(rect));
int x = (int)(rect.objLeft * scaleX);
int y = (int)(rect.objTop * scaleY);
int width = (int)((rect.objRight - rect.objLeft) * scaleX);
int height = (int)((rect.objBottom - rect.objTop) * scaleY);
if (x < image.Width && y < image.Height && width > 0 && height > 0)
{
g.DrawRectangle(pen, x, y, width, height);
}
}
}
// 保存到内存流再上传
using var outputStream = new MemoryStream();
image.Save(outputStream, ImageFormat.Png);
outputStream.Position = 0;
string fileName = Path.GetFileName(new Uri(url).AbsolutePath);
// 上传到 MinIO
string uploadedUrl = await _minioService.UploadStreamFile(outputStream, fileName, "test", cdid);
Console.WriteLine("返回 imgurl" + uploadedUrl);
return uploadedUrl;
}
catch (Exception ex)
{
Console.WriteLine($"处理图片失败: {url}, 错误: {ex.Message}");
return string.Empty;
}
}
public async void DrawingImgAsync()
{
string url = "http://123.132.248.154:6015/DroneEnforcement/2025/20250514/lQLPJyIVimQWGKnNA4PNA6Gw1D3q5gbxUvQIiumcIx4vAA_929_899.png";

Loading…
Cancel
Save