


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、java 屏幕取詞的實(shí)現(xiàn)? ? 我很早以前就在猜測金山詞霸是怎么實(shí)現(xiàn)這種功 能的。開始我以為是金山詞霸將鼠標(biāo)下的文字圖像剪裁出, 然后使用圖像模式識別出單詞。但后來發(fā)現(xiàn)這個想法不太現(xiàn) 實(shí),不說圖像識別的難度了,這樣識別單詞也會給系統(tǒng)帶來 巨大的開銷。后來偶然發(fā)現(xiàn)金山詞霸是取不到圖像上的文字 的,才認(rèn)識到不是圖像模式識別技術(shù)。 再后來問過一個師兄, 這個師兄說,這是因?yàn)榻鹕皆~霸在系統(tǒng)中做了鉤子,當(dāng)應(yīng)用 程序使用系統(tǒng)提供的文字渲染類庫時,渲染的文字就會通過 回調(diào)鉤子傳給金山詞霸,因此就獲得了這個文本。于是才恍 然大悟。 ? 也就說如果某個應(yīng)用程序恰好不是調(diào)用操作系統(tǒng)的文 本顯示類庫,那么金山詞霸也
2、是沒有辦法取到該應(yīng)用程序上 的文字。 ? ? 這個想法很快就在很多程序上得到驗(yàn)證。如 firefox ,它使用自己的渲染引擎。 再如 Adobe AcrobatReader 它渲染文本也是使用自己的字體渲染技術(shù)(后來金山詞霸專 門為 Adobe AcrobatReader 做了個插件) 。再如 OpenOffice , 它的界面是使用 Swing 來渲染的,因此也沒有辦法取 詞。 ?OpenOffice 這個例子引出了這樣一個事實(shí),所有的 Swing 應(yīng)用程序都是無法使用金山詞霸取詞的。 ? 偶然一 次在 JavaLobby 看貼,看到有人問 Java 6 的 Java 2D 類庫 是不是做了
3、很大改動, 因?yàn)樗麄冏龅?Swing 界面取詞功能失 效了。 詳細(xì)閱讀才得知, 他們是在 Swing 底層 Java 2D 的文 本渲染管道添加偵聽接口,也就是類似于金山詞霸的鉤子。 但由于他們使用了 Java 2D 的內(nèi)部實(shí)現(xiàn)接口,結(jié)果在 Java 升級時,他們的程序就無法正常工作了。 ? 我一直對這個想法很感興趣。因此今天除了學(xué)習(xí)及翻 譯 Java 2D API 的文檔外, 還自己實(shí)驗(yàn)做了個 Swing 屏幕取 詞實(shí)驗(yàn)程序。當(dāng)然這個辭典重點(diǎn)不是翻譯,它只是簡單的湊 了幾個中英文的單詞對照。這個實(shí)驗(yàn)非常粗化,但足以證明 完全可以不通過 Java 2D API 的內(nèi)部接口實(shí)現(xiàn)屏幕取詞。如 果細(xì)
4、化做下去, 將這個類庫作為 JRE 的擴(kuò)展安裝上去, 應(yīng)該 能實(shí)現(xiàn)在所有 Swing 應(yīng)用上的取詞。 ? 這個取詞功能的核心思想是,監(jiān)聽整個 swing 事件系 統(tǒng)的鼠標(biāo)移動事件處理器(通過Toolkit.getDefaultToolkit().addAWTEventListener 實(shí)現(xiàn)),為 所有窗口及其組件添加鼠標(biāo)移動偵聽事件處理器。這些處理 器在初始化時根據(jù)當(dāng)前組件封裝一個代理Graphics : publicclass ProxyGraphics extends Graphics2D ? private Graphics2D proxy;? private ArrayList tex
5、ts = new ArrayList();? /* Creates a new instance of ProxyGraphics */ ? public ProxyGraphics(Graphics2D g2d) ? proxy = g2d;? ? ? public void draw(Shape s) ? proxy.draw(s);? ? public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) ? return proxy.drawImage(img, xform, obs);? ? ? public void drawString(String str, int x,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)年度發(fā)展報告-1
- 《筆算加法》(共2課時)教學(xué)設(shè)計(jì)-2024-2025學(xué)年一年級下冊數(shù)學(xué)人教版
- 2024秋高中化學(xué) 主題1 呵護(hù)生存環(huán)境 課題2 獲取安全的飲用水教學(xué)設(shè)計(jì) 魯科版選修1
- 2023四年級數(shù)學(xué)下冊 三 快樂農(nóng)場-運(yùn)算律 信息窗1 加法運(yùn)算定律第1課時教學(xué)設(shè)計(jì) 青島版六三制
- 一年級體育下冊 鉆山洞教學(xué)設(shè)計(jì)
- 《吹豎笛》 (教學(xué)設(shè)計(jì))-2024-2025學(xué)年湘藝版(2012)音樂三年級上冊
- 調(diào)查旅游意向課件
- Unit 1 Starting out 教學(xué)設(shè)計(jì) 2024-2025學(xué)年外研版英語七年級上冊
- 9《烏鴉喝水》教學(xué)設(shè)計(jì)2024-2025學(xué)年統(tǒng)編版語文一年級上冊
- Unit 7 Lesson 1 Listening and Speaking 教學(xué)設(shè)計(jì)2024-2025學(xué)年仁愛科普版(2024)七年級英語下冊
- 110kV立塔架線安全施工方案
- 完形填空-2025年安徽中考英語總復(fù)習(xí)專項(xiàng)訓(xùn)練(含解析)
- 《歲末年初重點(diǎn)行業(yè)領(lǐng)域安全生產(chǎn)提示》專題培訓(xùn)
- 商混站(商品混凝土公司)安全風(fēng)險分級管控和隱患排查治理雙體系方案全套資料匯編完整版
- GB/T 16288-2024塑料制品的標(biāo)志
- 20180510醫(yī)療機(jī)構(gòu)門急診醫(yī)院感染管理規(guī)范
- 化工設(shè)備安全操作規(guī)程
- 工業(yè)發(fā)展現(xiàn)狀及未來趨勢分析 匯報材料
- 文秘綜合崗位筆試試題
- 2024年江西省“振興杯”電工競賽考試題庫(含答案)
- 種豬運(yùn)輸合同范本
評論
0/150
提交評論