teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

質問文のソースコードが削除されたので、回答文に記載。

2018/09/08 10:01

投稿

umyu
umyu

スコア5846

answer CHANGED
@@ -9,16 +9,98 @@
9
9
  あと`progress`を以下のように`Console`に出力するように変更しました。
10
10
 
11
11
  ```JavaScript
12
+ <!DOCTYPE html>
13
+ <html>
14
+ <head>
15
+ <meta charset="UTF-8">
16
+ <base target="_top">
17
+ <title>Tesseract.js</title>
18
+ <script src='https://cdn.rawgit.com/naptha/tesseract.js/1.0.10/dist/tesseract.js'></script>
19
+ <script>
20
+ // ユーザ指定のファイルを読み込み、画像認識の関数を呼び出す。
21
+ function read_in() {
22
+ const reader = new FileReader();
23
+ reader.onload = (e) => {
24
+ //選択された画像をimg要素として表示する。
25
+ document.getElementById("read_image").src = e.target.result;
26
+ //画像認識を行う
27
+ recognize_image();
28
+ }
29
+ // 画像ファイルをdata URLとして読み込むように指示しておく。
30
+ reader.readAsDataURL(document.getElementById("input_image_file").files[0]);
31
+ }
32
+
33
+
34
+ // 画像認識を行う。
35
+ function recognize_image() {
36
+ //結果出力先の要素を取得する。
37
+ const txt_out = document.getElementById("text_of_read_image");
38
+ //複数回、連続して実行するときのために、最初に中身を捨てる。
39
+ txt_out.innerHTML = "";
40
+ //指定された言語のコードを取得する。
41
+ const lang_list = document.getElementById("lang_options");
42
+ const selected_lang = lang_list.options[lang_list.selectedIndex].value;
43
+ console.log(selected_lang + "が選択されました。");
44
+ const msg = document.getElementById("msg");
45
+ msg.textContent = "[処理を開始しました。]\n";
46
+
47
+ //画像認識
12
48
  Tesseract.recognize(
13
49
  document.getElementById("read_image").src,
14
50
  {
15
51
  lang: selected_lang
16
52
  })
17
- .progress(function(message){console.log('progress is: ', message)})
53
+ .progress(message => { console.log('progress is: ', message); })
18
- .catch(function(e) {
54
+ .catch(e => {
19
- document.getElementById("msg").textContent += "[エラーです: " + e + "]";
55
+ msg.textContent += "[エラーです: " + e + "]";
20
56
  console.log("エラーです: " + e);
21
57
  })
58
+ .then(result =>{
59
+ txt_out.innerHTML = result.text;
60
+ })
61
+ .finally(r => {
62
+ msg.textContent += "[処理が終わりました]\n";
63
+ });
64
+ }
65
+
66
+ </script>
67
+ </head>
68
+ <body class="main-text-only">
69
+ <form name="f">
70
+
71
+ <ol>
72
+ <li>言語を指定し (
73
+ <select name="lang_options" id="lang_options">
74
+ <option value="eng">English</option>
75
+ <option value="jpn" selected>Japanese</option>
76
+ <option value="kor">Korean</option>
77
+ </select>
78
+ )、
79
+ </li>
80
+
81
+ <li>
82
+ 画像ファイルを選択し
83
+ (<input type="file" id="input_image_file" name="input_image_file" />)、
84
+ </li>
85
+
86
+ <li>
87
+ そのファイルを
88
+ <input type="button" value="読み込んで" onclick="read_in()">
89
+ ください。
90
+ </li>
91
+ </ol>
92
+ </form>
93
+
94
+ <table style="margin: auto;">
95
+ <tr><th>認識対象画像</th><th>読み取り結果</th></tr>
96
+ <tr>
97
+ <td style="overflow: auto;"><img id="read_image" style="max-width: 450px; max-height: 450px;" /></td>
98
+ <td id="text_of_read_image" style="white-space: pre; font-family: monospace;"></td>
99
+ </tr>
100
+ </table>
101
+ <p id="msg" style="color: darkred; font-style: italic; overflow: auto; max-height: 10ex;"></p>
102
+ </body>
103
+ </html>
22
104
  ```
23
105
  ![イメージ説明](e6964fcc31d2af268078fbef065450e6.png)
24
106