|
86 | 86 | </div> |
87 | 87 | <div class="form-item"> |
88 | 88 | <button class="read-words">朗读</button> |
| 89 | + <button class="input-image">图片识别</button> |
89 | 90 | </div> |
90 | 91 | </div> |
91 | 92 |
|
92 | 93 |
|
93 | | - <script> |
| 94 | + <script type="module"> |
| 95 | + import Tesseract from "https://gcore.jsdelivr.net/npm/tesseract.js@5/dist/tesseract.esm.min.js"; |
| 96 | + const worker = await Tesseract.createWorker("chi_sim", 1, { |
| 97 | + corePath: |
| 98 | + "https://gcore.jsdelivr.net/npm/tesseract.js-core@5/tesseract-core-simd-lstm.wasm.js", |
| 99 | + workerPath: |
| 100 | + "https://gcore.jsdelivr.net/npm/tesseract.js@5/dist/worker.min.js", |
| 101 | + langPath: |
| 102 | + "https://gcore.jsdelivr.net/npm/@tesseract.js-data/chi_sim/4.0.0", |
| 103 | + }); |
| 104 | + |
| 105 | + const inputImageDOM = document.querySelector('.input-image') |
| 106 | + inputImageDOM.addEventListener("click", () => { |
| 107 | + const fileInput = document.createElement('input'); |
| 108 | + fileInput.setAttribute('type', 'file'); |
| 109 | + fileInput.setAttribute('accept', '*'); |
| 110 | + fileInput.addEventListener('change', async () => { |
| 111 | + const files = fileInput.files; |
| 112 | + let text = ''; |
| 113 | + for (let i = 0; i < files.length; i++) { |
| 114 | + const ret = await worker.recognize(files[i]); |
| 115 | + text += ret.data.text.replace(/[^a-zA-Z\u4e00-\u9fa5 ]/g, '') |
| 116 | + console.log(ret.data.text); |
| 117 | + } |
| 118 | + readWordTextDOM.value = text; |
| 119 | + }); |
| 120 | + fileInput.click(); |
| 121 | + }) |
| 122 | + |
| 123 | + |
94 | 124 | const bookWords = [ |
95 | 125 | { |
96 | 126 | name: '义务教育(六三学制)三年级上册', |
|
132 | 162 | "能够", |
133 | 163 | "双臂" |
134 | 164 | ] |
| 165 | + }, |
| 166 | + { |
| 167 | + name: '5', |
| 168 | + words: ['水泥', '放晴', '明朗', '亮晶晶', '金黄', '雨珠', '院墙', '落叶', '闪闪发光', '尽头', '平展', '排列', '规则', '歌唱', '迟到'] |
| 169 | + }, |
| 170 | + { |
| 171 | + name: '6', |
| 172 | + words: '清凉 留意 颜料 枫叶 邮票 果树 菊花 仙子 气味 香甜 香味 加紧 过冬 丰收'.split(' ') |
| 173 | + }, |
| 174 | + { |
| 175 | + name: '8', |
| 176 | + words: '火柴 围裙 可怜 哪怕 暖和 简直 蜡烛 亮光 地板 烛光 温和 赶紧 痛苦 清晨'.split(' ') |
| 177 | + }, |
| 178 | + { |
| 179 | + name: '10', |
| 180 | + words: '旅行 要好 咱们 草堆 作声 偷偷 答应 做梦 来得及 救命 拼命 大吃一惊 消化 当然 几乎 知觉 眼泪'.split(' ') |
| 181 | + }, |
| 182 | + { |
| 183 | + name: '12', |
| 184 | + words: '变成 门板 准备 暴风雨 安心 睡觉 主人 墙壁 母鸡 注意 蜘蛛 漂亮 因此'.split(' ') |
| 185 | + }, |
| 186 | + { |
| 187 | + name: '15', |
| 188 | + words: '雨点 船夫 用力 船头 羽毛 母亲 外祖父 翠绿 静悄悄 翠鸟 捕鱼'.split(' ') |
| 189 | + }, |
| 190 | + { |
| 191 | + name: '16', |
| 192 | + words: '窗前 蒲公英 盛开 玩耍 一本正经 绒毛 合拢 手掌 有趣 假装 哈欠 钓鱼 观察 喜爱'.split(' ') |
135 | 193 | } |
136 | 194 | ] |
137 | 195 | } |
|
0 commit comments