优化日志
This commit is contained in:
@@ -50,21 +50,16 @@ namespace Ink_Canvas.Helpers
|
|||||||
_modernProcessor = new ModernInkProcessor();
|
_modernProcessor = new ModernInkProcessor();
|
||||||
_modernAnalyzer = new ModernInkAnalyzer();
|
_modernAnalyzer = new ModernInkAnalyzer();
|
||||||
_isModernSystemAvailable = true;
|
_isModernSystemAvailable = true;
|
||||||
LogHelper.WriteLogToFile(
|
|
||||||
$"墨迹识别管理器:使用现代化墨迹识别系统 (WinRT) - 进程64位: {Environment.Is64BitProcess}, OS64位: {Environment.Is64BitOperatingSystem}");
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
LogHelper.WriteLogToFile("WinRT API不可用,回退到IACore: " + ex.Message, LogHelper.LogType.Warning);
|
LogHelper.WriteLogToFile("WinRT 墨迹初始化失败: " + ex.Message, LogHelper.LogType.Warning);
|
||||||
_isModernSystemAvailable = false;
|
_isModernSystemAvailable = false;
|
||||||
_modernProcessor = null;
|
_modernProcessor = null;
|
||||||
_modernAnalyzer = null;
|
_modernAnalyzer = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_isModernSystemAvailable)
|
|
||||||
LogHelper.WriteLogToFile("墨迹识别管理器:使用IACore墨迹识别系统");
|
|
||||||
|
|
||||||
_isInitialized = true;
|
_isInitialized = true;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -86,7 +81,7 @@ namespace Ink_Canvas.Helpers
|
|||||||
if (ShapeRecognitionRouter.ResolveUseWinRt(mode)
|
if (ShapeRecognitionRouter.ResolveUseWinRt(mode)
|
||||||
&& WinRtInkShapeRecognizer.IsApiAvailable)
|
&& WinRtInkShapeRecognizer.IsApiAvailable)
|
||||||
{
|
{
|
||||||
return RunWinRtOrLogAsync(strokes);
|
return RecognizeShapeWinRtOnDispatcherContext(strokes);
|
||||||
}
|
}
|
||||||
|
|
||||||
var legacy = InkRecognizeHelper.RecognizeShapeIACore(strokes);
|
var legacy = InkRecognizeHelper.RecognizeShapeIACore(strokes);
|
||||||
@@ -99,17 +94,10 @@ namespace Ink_Canvas.Helpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async Task<InkShapeRecognitionResult> RunWinRtOrLogAsync(StrokeCollection strokes)
|
private static async Task<InkShapeRecognitionResult> RecognizeShapeWinRtOnDispatcherContext(
|
||||||
|
StrokeCollection strokes)
|
||||||
{
|
{
|
||||||
try
|
return await WinRtInkShapeRecognizer.RecognizeShapeAsync(strokes).ConfigureAwait(true);
|
||||||
{
|
|
||||||
return await WinRtInkShapeRecognizer.RecognizeShapeAsync(strokes).ConfigureAwait(true);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
LogHelper.WriteLogToFile("WinRT 墨迹形状识别异常: " + ex, LogHelper.LogType.Error);
|
|
||||||
return InkShapeRecognitionResult.Empty;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<StrokeCollection> CorrectInkAsync(
|
public Task<StrokeCollection> CorrectInkAsync(
|
||||||
|
|||||||
@@ -67,27 +67,16 @@ namespace Ink_Canvas.Helpers
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (added == 0)
|
if (added == 0)
|
||||||
{
|
|
||||||
LogHelper.WriteLogToFile(
|
|
||||||
"WinRT 形状识别:未能从 WPF 笔迹生成 InkStroke(检查 StylusPoints/DrawingAttributes)。",
|
|
||||||
LogHelper.LogType.Warning);
|
|
||||||
return InkShapeRecognitionResult.Empty;
|
return InkShapeRecognitionResult.Empty;
|
||||||
}
|
|
||||||
|
|
||||||
await analyzer.AnalyzeAsync().AsTask().ConfigureAwait(true);
|
await analyzer.AnalyzeAsync().AsTask().ConfigureAwait(true);
|
||||||
|
|
||||||
var drawing = FindPrimaryDrawing(analyzer);
|
var drawing = FindPrimaryDrawing(analyzer);
|
||||||
if (drawing == null)
|
if (drawing == null)
|
||||||
{
|
|
||||||
LogHelper.WriteLogToFile("WinRT 形状识别:分析完成但未找到 InkAnalysisInkDrawing 节点。", LogHelper.LogType.Trace);
|
|
||||||
return InkShapeRecognitionResult.Empty;
|
return InkShapeRecognitionResult.Empty;
|
||||||
}
|
|
||||||
|
|
||||||
if (drawing.DrawingKind == global::Windows.UI.Input.Inking.Analysis.InkAnalysisDrawingKind.Drawing)
|
if (drawing.DrawingKind == global::Windows.UI.Input.Inking.Analysis.InkAnalysisDrawingKind.Drawing)
|
||||||
{
|
|
||||||
LogHelper.WriteLogToFile("WinRT 形状识别:结果为 Drawing(未识别为规则形状)。", LogHelper.LogType.Trace);
|
|
||||||
return InkShapeRecognitionResult.Empty;
|
return InkShapeRecognitionResult.Empty;
|
||||||
}
|
|
||||||
|
|
||||||
var name = MapDrawingKindToShapeName(drawing.DrawingKind);
|
var name = MapDrawingKindToShapeName(drawing.DrawingKind);
|
||||||
if (string.IsNullOrEmpty(name) || name == "Drawing")
|
if (string.IsNullOrEmpty(name) || name == "Drawing")
|
||||||
@@ -105,9 +94,8 @@ namespace Ink_Canvas.Helpers
|
|||||||
|
|
||||||
return new InkShapeRecognitionResult(name, centroid, hot, w, h, toRemove);
|
return new InkShapeRecognitionResult(name, centroid, hot, w, h, toRemove);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
LogHelper.WriteLogToFile("WinRtInkShapeRecognizer 异常: " + ex, LogHelper.LogType.Error);
|
|
||||||
return InkShapeRecognitionResult.Empty;
|
return InkShapeRecognitionResult.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user