diff --git a/Ink Canvas/Helpers/InkRecognitionManager.cs b/Ink Canvas/Helpers/InkRecognitionManager.cs index 111aefd9..8c30d975 100644 --- a/Ink Canvas/Helpers/InkRecognitionManager.cs +++ b/Ink Canvas/Helpers/InkRecognitionManager.cs @@ -40,7 +40,7 @@ namespace Ink_Canvas.Helpers try { // 启动阶段只做能力探测,不做 WinRT 组件实例化(避免冷启动延迟) - _isModernSystemAvailable = WinRtInkShapeRecognizer.IsApiAvailable && Environment.Is64BitProcess; + _isModernSystemAvailable = WinRtInkShapeRecognizer.IsApiAvailable; _isInitialized = true; } catch (Exception ex) @@ -153,14 +153,6 @@ namespace Ink_Canvas.Helpers return Task.FromResult(strokes); } - if (!Environment.Is64BitProcess) - { - LogHelper.WriteLogToFile( - "[手写体] CorrectInkAsync 跳过:非 64 位进程,WinRT 手写体替换不可用。笔画数=" + strokes.Count, - LogHelper.LogType.Info); - return Task.FromResult(strokes); - } - EnsureModernAnalyzerInitialized(); if (_modernProcessor == null) { @@ -185,7 +177,7 @@ namespace Ink_Canvas.Helpers } /// - /// WinRT 手写体识别(需 64 位进程、Windows 10+ 及系统手写识别组件)。返回分词候选与包围框,供剪贴板或插件使用。 + /// WinRT 手写体识别(需 Windows 10+ 及系统手写识别组件)。返回分词候选与包围框,供剪贴板或插件使用。 /// public Task RecognizeHandwritingAsync( StrokeCollection strokes, @@ -197,8 +189,7 @@ namespace Ink_Canvas.Helpers try { - if (!Environment.Is64BitProcess - || !ShapeRecognitionRouter.ResolveUseWinRt(mode) + if (!ShapeRecognitionRouter.ResolveUseWinRt(mode) || !WinRtHandwritingRecognizer.IsApiAvailable) return Task.FromResult(HandwritingRecognitionResult.Empty); @@ -224,7 +215,7 @@ namespace Ink_Canvas.Helpers public string GetSystemInfo() { return _isModernSystemAvailable - ? $"现代化64位墨迹识别系统 (Windows Runtime API) - 进程架构: {Environment.Is64BitProcess}" + ? $"现代化墨迹识别系统 (Windows Runtime API) - 进程架构: {Environment.Is64BitProcess}" : $"传统墨迹识别系统 (IACore) - 进程架构: {Environment.Is64BitProcess}"; } diff --git a/Ink Canvas/Helpers/InkRecognizeHelper.cs b/Ink Canvas/Helpers/InkRecognizeHelper.cs index 9f3018c7..ed56e693 100644 --- a/Ink Canvas/Helpers/InkRecognizeHelper.cs +++ b/Ink Canvas/Helpers/InkRecognizeHelper.cs @@ -117,7 +117,7 @@ namespace Ink_Canvas.Helpers } } - /// WinRT 手写识别(64 位 + Windows 10+)。 + /// WinRT 手写识别(Windows 10+)。 public static Task RecognizeHandwritingUnifiedAsync( StrokeCollection strokes, ShapeRecognitionEngineMode mode) => diff --git a/Ink Canvas/Helpers/InkShapeRecognition.cs b/Ink Canvas/Helpers/InkShapeRecognition.cs index 0d04c0cf..987a9aee 100644 --- a/Ink Canvas/Helpers/InkShapeRecognition.cs +++ b/Ink Canvas/Helpers/InkShapeRecognition.cs @@ -17,13 +17,13 @@ namespace Ink_Canvas.Helpers public static class ShapeRecognitionRouter { /// - /// 自动模式:按当前进程位数选择——64 位进程用 WinRT,32 位进程(含 x86 目标在 WOW64 下运行)用 IACore。 + /// 自动模式:在 Windows 10 及以上系统默认使用 WinRT,否则使用 IACore。 /// public static bool ResolveUseWinRt(ShapeRecognitionEngineMode mode) { if (mode == ShapeRecognitionEngineMode.WinRT) return true; if (mode == ShapeRecognitionEngineMode.IACore) return false; - return Environment.Is64BitProcess; + return OSVersion.GetOperatingSystem() >= OSVersionExtension.OperatingSystem.Windows10; } public static bool ShouldRunShapeRecognition(bool inkToShapeEnabled, ShapeRecognitionEngineMode mode) @@ -31,7 +31,7 @@ namespace Ink_Canvas.Helpers if (!inkToShapeEnabled) return false; if (ResolveUseWinRt(mode)) return OSVersion.GetOperatingSystem() >= OSVersionExtension.OperatingSystem.Windows10; - return !Environment.Is64BitProcess; + return true; } public static ShapeRecognitionEngineMode FromSettingsInt(int value) diff --git a/Ink Canvas/Properties/Strings.resx b/Ink Canvas/Properties/Strings.resx index 27aa9e9e..ea3fb82c 100644 --- a/Ink Canvas/Properties/Strings.resx +++ b/Ink Canvas/Properties/Strings.resx @@ -568,7 +568,7 @@ WinRT识别转手写体字形 - #开启后,调用墨迹纠正API时:先WinRT识别手写词,再将识别成功的文字用手写风格字体(默认Ink Free/楷体等,可在设置JSON的handwritingCorrectionFontFamily调整)转成字形轮廓墨迹替换原笔画。需64位与WinRT。 + #开启后,调用墨迹纠正API时:先WinRT识别手写词,再将识别成功的文字用手写风格字体(默认Ink Free/楷体等,可在设置JSON的handwritingCorrectionFontFamily调整)转成字形轮廓墨迹替换原笔画。需WinRT。 识别引擎