Skip to content

Commit a3ba838

Browse files
committed
fix: 修复showhitbox失效的bug
1 parent 90537d2 commit a3ba838

3 files changed

Lines changed: 33 additions & 31 deletions

File tree

MFAAvalonia/Extensions/MFAExtensions.cs

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -457,11 +457,10 @@ public static VersionChecker.VersionType ToVersionType(this int version)
457457

458458
try
459459
{
460-
using (encodedDataStream)
461-
{
462-
encodedDataStream.Seek(0, SeekOrigin.Begin);
463-
return new Bitmap(encodedDataStream);
464-
}
460+
461+
encodedDataStream.Seek(0, SeekOrigin.Begin);
462+
return new Bitmap(encodedDataStream);
463+
465464
}
466465
catch (Exception ex)
467466
{
@@ -493,33 +492,37 @@ public static Bitmap DrawRectangle(this Bitmap sourceBitmap, MaaRectBuffer rect,
493492
var pixelSize = sourceBitmap.PixelSize;
494493
var dpi = sourceBitmap.Dpi;
495494

495+
// 提前获取矩形的值,因为 MaaRectBuffer 可能会被释放
496+
var rectX = rect.X;
497+
var rectY = rect.Y;
498+
var rectWidth = rect.Width;
499+
var rectHeight = rect.Height;
500+
496501
var renderBitmap = new RenderTargetBitmap(pixelSize, dpi);
497502

498-
DispatcherHelper.PostOnMainThread(() =>
503+
try
499504
{
500-
try
501-
{
502-
// 使用 DrawingContext 绘制
503-
using var context = renderBitmap.CreateDrawingContext();
505+
// 使用 DrawingContext 绘制(同步执行,避免异步导致的资源释放问题)
506+
using var context = renderBitmap.CreateDrawingContext();
504507

505-
// 1. 绘制原始图像作为背景
506-
context.DrawImage(sourceBitmap, new Rect(bitmapSize));
507-
508-
// 2. 创建抗锯齿画笔
509-
var pen = new Avalonia.Media.Pen(color, thickness)
510-
{
511-
LineJoin = PenLineJoin.Round,
512-
LineCap = PenLineCap.Round
513-
};
508+
// 1. 绘制原始图像作为背景
509+
context.DrawImage(sourceBitmap, new Rect(bitmapSize));
514510

515-
// 3. 绘制矩形边框
516-
context.DrawRectangle(pen, new Rect(rect.X, rect.Y, rect.Width, rect.Height));
517-
}
518-
catch (Exception ex)
511+
// 2. 创建抗锯齿画笔
512+
var pen = new Avalonia.Media.Pen(color, thickness)
519513
{
520-
LoggerHelper.Error($"DrawRectangle 绘制失败: {ex.Message}");
521-
}
522-
});
514+
LineJoin = PenLineJoin.Round,
515+
LineCap = PenLineCap.Round
516+
};
517+
518+
// 3. 绘制矩形边框
519+
context.DrawRectangle(pen, new Rect(rectX, rectY, rectWidth, rectHeight));
520+
}
521+
catch (Exception ex)
522+
{
523+
LoggerHelper.Error($"DrawRectangle 绘制失败: {ex.Message}");
524+
}
525+
523526
return renderBitmap;
524527
}
525528

MFAAvalonia/Extensions/MaaFW/MaaProcessor.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -877,7 +877,7 @@ public void HandleCallBack(object? sender, MaaCallbackEventArgs args)
877877
{
878878
//使用 using 确保资源正确释放
879879
using var rect = new MaaRectBuffer();
880-
using var imageBuffer = new MaaImageBuffer();
880+
var imageBuffer = new MaaImageBuffer();
881881
using var imageListBuffer = new MaaImageListBuffer();
882882
tasker.GetRecognitionDetail(recoId, out string node,
883883
out var algorithm,
@@ -959,8 +959,8 @@ public void HandleCallBack(object? sender, MaaCallbackEventArgs args)
959959
bitmapToSet?.Dispose();
960960
bitmapToSet = null;
961961
}
962-
963-
962+
963+
964964
if (bitmapToSet != null)
965965
{
966966
var finalBitmap = bitmapToSet;
@@ -975,7 +975,6 @@ public void HandleCallBack(object? sender, MaaCallbackEventArgs args)
975975
}
976976
}
977977
}
978-
979978
}
980979
}
981980
if (jObject.ContainsKey("focus"))

MFAAvalonia/MFAAvalonia.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
<PackageReference Include="Maa.Framework.Binding.Extensions" Version="5.1.0-preview.3" />
9393
<PackageReference Include="Maa.Framework.Binding.Native" Version="5.1.0-preview.3"/>
9494
<PackageReference Include="Maa.Framework.Native" Version="5.1.0-preview.3"/>
95-
<PackageReference Include="Maa.Framework.Runtimes" Version="5.3.0-beta.4" />
95+
<PackageReference Include="Maa.Framework.Runtimes" Version="5.3.0-beta.5" />
9696
<PackageReference Include="MailKit" Version="4.14.1"/>
9797
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="5.0.0"/>
9898
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="5.0.0"/>

0 commit comments

Comments
 (0)