// 文字認識
        private async void Recognize()
        {
            string text = "";

            if (inkManager.GetStrokes().Count() != 0)
            {
                var recognizer = inkManager.GetRecognizers().FirstOrDefault(r => r.Name.Contains("日本語"));
                // 文字認識エンジンの設定
                inkManager.SetDefaultRecognizer(recognizer);

                // 文字認識
                IReadOnlyList <InkRecognitionResult> results = await inkManager.RecognizeAsync(InkRecognitionTarget.All);

                text = results.Select(x => x.GetTextCandidates().First()).Aggregate((x, y) => x + y);
            }
            Result += "," + text;
        }
示例#2
0
        async private void appBarRecognize_Click(object sender, RoutedEventArgs e)
        {
            if (inkManager.GetStrokes().Count > 0)
            {
                try
                {
                    // BUG 339829, 629537, 1846969 SaveAsync on Mobile, non-Chinese recognizers on Mobile.
                    //string zh = "Microsoft 中文(简体)手写识别器";
                    //string zhCN = "Microsoft 中文(简体)手写识别器";
                    //string zhHansCN = "Microsoft 中文(简体)手写识别器";
                    //string zhHant = "Microsoft 中文(繁體)手寫辨識器";
                    //string zhTW = "Microsoft 中文(繁體)手寫辨識器";
                    //string enUS = "Microsoft English (US) Handwriting Recognizer";

                    IReadOnlyList <InkRecognizer> recognizers = inkManager.GetRecognizers();
                    bool recognizerFound = false;

                    if (recognizers != null && recognizers.Count > 0)
                    {
                        foreach (InkRecognizer recognizer in recognizers)
                        {
                            foreach (KeyValuePair <string, string> item in RecognizerHelper.RecognizerNames)
                            {
                                status.Log(string.Format(
                                               CultureInfo.CurrentCulture, LocalizableStrings.INK_RECOGNIZER_SEARCH, recognizer.Name));
                                if (recognizer.Name == item.Value)
                                {
                                    inkManager.SetDefaultRecognizer(recognizer);
                                    recognizerFound = true;
                                    status.Log(string.Format(
                                                   CultureInfo.CurrentCulture, LocalizableStrings.INK_RECOGNIZER_FOUND, item.Key));
                                    break;
                                }
                            }
                            if (recognizerFound)
                            {
                                break;
                            }
                        }

                        if (recognizerFound)
                        {
                            IReadOnlyList <InkRecognitionResult> results = await inkManager.RecognizeAsync(InkRecognitionTarget.All);

                            if (results != null)
                            {
                                inkManager.UpdateRecognitionResults(results);
                                StringBuilder builder = new StringBuilder();
                                builder.Append(LocalizableStrings.INK_RECOGNIZER_PREFIX);
                                foreach (InkRecognitionResult result in results)
                                {
                                    builder.Append(" " + result.GetTextCandidates()[0]);
                                }
                                status.Log(builder.ToString());
                            }
                            else
                            {
                                status.Log(LocalizableStrings.INK_RECOGNIZER_FAIL);
                            }
                        }
                        else
                        {
                            status.Log(LocalizableStrings.INK_RECOGNIZER_NOT_FOUND);
                        }
                    }
                    else
                    {
                        status.Log(LocalizableStrings.INK_NO_RECOGNIZERS);
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("InkPage.appBarRecognize_Click: " + ex.ToString());
                }
            }
            else
            {
                status.Log(LocalizableStrings.INK_EMPTY_INK_RECOGNIZE);
            }
        }