專利名稱:一種截屏方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,更具體地說,涉及一種截屏方法及系統(tǒng)。
背景技術(shù):
目前對電腦屏幕內(nèi)容進(jìn)行截取時都是先將自身不想被截取的窗體使用普通隱藏 窗體方式把窗體進(jìn)行隱藏。如Windows系統(tǒng)下的API (Application Programming Interface,
應(yīng)用程序編程接口) Sh0WWind0W(SW_HIDE)。然后再對屏幕內(nèi)容進(jìn)行截取,最后將 截取的內(nèi)容保存或者顯示在指定窗體。目前截屏技術(shù)需要對自身不想被截取的程序窗體進(jìn)行隱藏后再進(jìn)行截取,因?yàn)?使用普通隱藏窗體方式,所以窗體隱藏時需要一定時間,當(dāng)確保窗體已完全隱藏時才進(jìn) 行截取,否則將會截取到自身不想被截取的窗體內(nèi)容。由對窗體設(shè)置隱藏到窗體完全隱 藏的時長就算是同一硬件配置下,也會因系統(tǒng)當(dāng)時所要處理的任務(wù)輕重而有所不同,所 以這個等待的時長也不好設(shè)置。故若將等待時間設(shè)置得太長了,截取的內(nèi)容可能不是最 新的屏幕內(nèi)容,若時間短了,也不能確保該隱藏的窗體已完全隱藏。特別是如果要對屏 幕內(nèi)容進(jìn)行實(shí)時的顯示,由于對窗體不斷的隱藏顯示,將會使屏幕閃爍嚴(yán)重,影響視覺 效果。中國專利局于2008年2月13日公開的第200710077362.0號專利中,其名稱為
“一種截屏方法及系統(tǒng)”,其揭露了一種截屏方法及系統(tǒng)通過新生成一個半透明窗口 覆蓋整個屏幕,配置需要截屏的區(qū)域使需要截屏的區(qū)域與半透明窗口有明顯的對比,從 而使用戶能更清晰地看清當(dāng)前選擇區(qū)域的范圍,從而能更精確的選擇需要截屏的區(qū)域。 此方案并沒有解決使用普通隱藏方式會導(dǎo)致截取到不想截取的窗口內(nèi)容及閃爍問題。因此,需要一種性能更好,效率更高的使窗體快速隱藏,不會導(dǎo)致閃爍,從而 對截屏不會造成影響的截屏方案,來克服現(xiàn)有技術(shù)中存在的上述缺陷。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,針對現(xiàn)有截屏技術(shù)中使用普通隱藏窗體方式 隱藏窗體需要時間導(dǎo)致的會截取到未完全隱藏的窗體內(nèi)容的問題和會出現(xiàn)閃爍的問題, 提供一種截屏方法及系統(tǒng)。本發(fā)明解決其技術(shù)問題所采用的方案之一是本發(fā)明提供了一種截屏方法,包 括如下步驟Si)接收用戶的截屏命令,獲得需要隱藏的窗體;S2)對需要隱藏窗體增加layered屬性,設(shè)置alpha透明度為一合適的透明度使需 要隱藏的窗體完全透明;S3)接收用戶輸入的選擇區(qū)域,截取選擇區(qū)域的屏幕內(nèi)容;S4)恢復(fù)隱藏窗體的屬性設(shè)置;S5)對截取到的屏幕內(nèi)容進(jìn)行處理。
alpha是窗體設(shè)置透明度的參數(shù),用灰階值0-255共256級分別與0% -100%透 明度對應(yīng)。透明度100%時(對應(yīng)255灰,白色)表示完全透明,透明度0%時(對應(yīng)0 灰,黑色)表示完全不透明,其他透明度-99%將按比例地取1-254之間的值。layered 為窗體的一個參數(shù),使用了該屬性,窗體才能設(shè)置alpha參數(shù)值,以支持透明功能。本發(fā)明所述的一種截屏方法,在步驟Sl中,用戶發(fā)出的截屏命令包括對當(dāng)前已 經(jīng)打開的窗體確定哪些窗體需要隱藏或者確定哪些窗體需要截屏。本發(fā)明所述的一種截屏方法,步驟S2進(jìn)一步包括獲取并保存需要隱藏窗體未 隱藏前的原始的layered屬性值和alpha值。本發(fā)明所述的一種截屏方法,在步驟S3中,用戶輸入的選擇區(qū)域?yàn)檎麄€屏幕或 者部分區(qū)域。本發(fā)明所述的一種截屏方法,步驟S4進(jìn)一步包括將隱藏窗體的layered屬性值 和alpha值恢復(fù)為原始值。本發(fā)明解決其技術(shù)問題所采用的方案之二是提供了一種截屏系統(tǒng),包括獲取隱藏窗體模塊用于接收用戶的截屏命令,從截屏命令中獲取用戶需要隱 藏的窗體;透明窗體形成模塊用于將需要隱藏的窗體處理為完全透明從而達(dá)到隱藏目 的;截屏模塊用于對用戶輸入的選擇區(qū)域作為截屏區(qū)域進(jìn)行截??;隱藏窗體恢復(fù)模塊用于將隱藏窗體恢復(fù)到未隱藏前的設(shè)置;圖片文件處理模塊用于將截取到的屏幕內(nèi)容進(jìn)行處理。本發(fā)明所述的一種截屏系統(tǒng),所述透明窗體形成模塊包括隱藏窗體屬性獲取單元用于獲取并保存需要隱藏窗體未隱藏前的原始的窗體 屬性值;處理單元用于將需要隱藏窗體處理為完全透明。本發(fā)明所述的一種截屏系統(tǒng),所述透明窗體形成模塊的隱藏窗體屬性獲取單元 獲取并保存需要隱藏窗體未隱藏前的原始的layered屬性值和alpha值。本發(fā)明所述的一種截屏系統(tǒng),所述透明窗體控制模塊的處理單元對需要隱藏窗 體增加layered屬性,配置alpha透明度為一合適的透明度使需要隱藏的窗體完全透明。本發(fā)明所述的一種截屏系統(tǒng),根據(jù)隱藏窗體屬性獲取單元保存的需要隱藏窗體 未隱藏前的原始的窗體屬性值,隱藏窗體恢復(fù)模塊將隱藏窗體的layered屬性值和alpha值 恢復(fù)為原始值。實(shí)施本發(fā)明的技術(shù)方案,具有以下有益效果用戶不需要擔(dān)心會截取到未完全 隱藏的不想被截取的窗體內(nèi)容,且屏幕內(nèi)容是實(shí)時更新時截屏截取到的內(nèi)容也是最新的 內(nèi)容,連續(xù)截屏不會有窗體閃爍現(xiàn)象,適用于監(jiān)視屏幕的整個或者部分區(qū)域等實(shí)時性要 求很高情況下的截屏。
圖1是本發(fā)明一較佳實(shí)施例提供的截屏方法的流程圖; 圖2是本發(fā)明一較佳實(shí)施例提供的截屏系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋 本發(fā)明,并不用于限定本發(fā)明。圖1為本發(fā)明一較佳實(shí)施例提供的截屏方法的流程圖,如圖1所示,詳述如 下在步驟Sl中,接收用戶的截屏命令,獲得需要隱藏的窗體。用戶發(fā)出的截屏命令包括對當(dāng)前已經(jīng)打開的窗體確定哪些需要隱藏或者確定哪 些窗體需要截屏。在步驟S2中,對需要隱藏窗體增加layered屬性,設(shè)置alpha透明度為一合適的
透明度使需要隱藏的窗體完全透明。作為本發(fā)明的實(shí)施例,步驟S2進(jìn)一步包括獲取并保存需要隱藏窗體未隱藏前 的原始的layered屬性值和alpha值。作為本發(fā)明的實(shí)施例,窗體alpha透明度峰值的90%以上就可使得窗體對用戶完 全透明,可以根據(jù)需要設(shè)置窗體的alpha透明度為在峰值90%以上的一合適透明度。在步驟S3中,接收用戶輸入的選擇區(qū)域,截取選擇區(qū)域的屏幕內(nèi)容。用戶輸入的選擇區(qū)域?yàn)檎麄€屏幕或者部分區(qū)域。用戶需要通過輸入裝置在屏 幕上選擇一個區(qū)域作為截屏區(qū)域,截屏區(qū)域?yàn)檎麄€屏幕或者部分區(qū)域,輸入裝置可以為 鼠標(biāo)、鍵盤等。作為本發(fā)明的實(shí)施例,可以使用快捷鍵來發(fā)出將整個屏幕進(jìn)行截屏的命 令。在步驟S4中,恢復(fù)隱藏窗體的屬性設(shè)置。作為本發(fā)明的實(shí)施例,將隱藏窗體的layered屬性值和alpha值恢復(fù)為原始值。在步驟S5中,對截取到的屏幕內(nèi)容進(jìn)行處理。作為本發(fā)明的一個實(shí)施例,可以將截取的屏幕內(nèi)容顯示在指定窗體;作為本發(fā) 明的另一個實(shí)施例,可以將截取的屏幕內(nèi)容保存為相應(yīng)的圖片文件圖片文件的類型可 以為JPG文件、BMP文件等。為了以后方便地使用該截屏圖片文件,可以將該圖片文件 進(jìn)行保存。作為本發(fā)明的實(shí)施例,可以選擇將圖片保存在內(nèi)存或硬盤等存儲介質(zhì)中,或 同時保存在多個存儲介質(zhì)中。圖2示為本發(fā)明一較佳實(shí)施例提供的截屏系統(tǒng)的結(jié)構(gòu)示意圖。如圖2所示,該 截屏系統(tǒng)包括獲取隱藏窗體模塊21、透明窗體形成模塊22、截屏模塊23、隱藏窗體恢 復(fù)模塊24和圖片處理模塊25。透明窗體形成模塊22又進(jìn)一步包括隱藏窗體屬性獲取 單元221和處理單元222。當(dāng)接收到用戶的截屏命令時,獲取隱藏窗體模塊21從用戶的命令中獲取用戶不 想截屏從而想隱藏起來的窗體;然后,透明窗體形成模塊22將需要隱藏的窗體處理為完 全透明;當(dāng)用戶確定需要截屏的區(qū)域時,截屏模塊23接收用戶輸入的選擇區(qū)域,截取選 擇區(qū)域的屏幕內(nèi)容;隱藏窗體恢復(fù)模塊24將隱藏窗體恢復(fù)到未隱藏前的設(shè)置,使這些隱 藏窗體恢復(fù)為可見;最后圖片處理單元25對截取的屏幕內(nèi)容進(jìn)行處理。作為本發(fā)明的實(shí)施例,透明窗體形成模塊22形成透明窗體的過程具體為隱藏窗體屬性獲取單元221獲取并保存需要隱藏窗體的layered屬性值和alpha值,處理單元 222對需要隱藏窗體增加layered屬性,設(shè)置alpha透明度為一合適的透明度使需要隱藏的 窗體完全透明。作為本發(fā)明的實(shí)施例,隱藏窗體恢復(fù)模塊24將隱藏窗體恢復(fù)到未隱藏前的設(shè)置 的過程具體為根據(jù)隱藏窗體屬性獲取單元保存的需要隱藏窗體未隱藏前的原始的窗體 屬性值,隱藏窗體恢復(fù)模塊將隱藏窗體的layered屬性 值和alpha值恢復(fù)為原始值。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的 精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之 內(nèi)。
權(quán)利要求
1.一種截屏方法,其特征在于,包括以下步驟51)接收用戶的截屏命令,獲得需要隱藏的窗體;52)對需要隱藏窗體增加layered屬性,設(shè)置alpha透明度為一合適的透明度使需要隱 藏的窗體完全透明;53)接收用戶輸入的選擇區(qū)域,截取選擇區(qū)域的屏幕內(nèi)容;54)恢復(fù)隱藏窗體的屬性設(shè)置;55)對截取到的屏幕內(nèi)容進(jìn)行處理。
2.如權(quán)利要求1所述方法,其特征在于,所述步驟S2進(jìn)一步包括獲取并保存需要 隱藏窗體未隱藏前的原始的layered屬性值和alpha值。
3.如權(quán)利要求2所述方法,其特征在于,所述步驟S4進(jìn)一步包括將隱藏窗體的 LAYERED屬性值和alpha值恢復(fù)為原始值。
4.一種截屏系統(tǒng),其特征在于,包括獲取隱藏窗體模塊用于接收用戶的截屏命令,從截屏命令中獲取用戶需要隱藏的 窗體;透明窗體形成模塊用于將需要隱藏的窗體處理為完全透明; 截屏模塊用于對用戶輸入的選擇區(qū)域作為截屏區(qū)域進(jìn)行截?。?隱藏窗體恢復(fù)模塊用于將隱藏窗體恢復(fù)到未隱藏前的設(shè)置; 圖片處理模塊用于將截取到的屏幕內(nèi)容進(jìn)行處理。
5.如權(quán)利要求4所述系統(tǒng),其特征在于,所述透明窗體形成模塊包括隱藏窗體屬性獲取單元用于獲取并保存需要隱藏窗體未隱藏前的原始的窗體屬性值;處理單元用于將需要隱藏窗體處理為完全透明。
全文摘要
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,提供了一種截屏方法,包括以下步驟接收用戶的截屏命令,獲得需要隱藏的窗體;對需要隱藏窗體增加layered屬性,設(shè)置alpha透明度為一合適的透明度使需要隱藏的窗體完全透明;接收用戶輸入的選擇區(qū)域,截取選擇區(qū)域的屏幕內(nèi)容;恢復(fù)隱藏窗體的屬性設(shè)置;對截取到的屏幕內(nèi)容進(jìn)行處理。本發(fā)明還公開了使用上述方法的系統(tǒng)。利用本發(fā)明公開的方法和系統(tǒng),用戶不需要擔(dān)心會截取到未完全隱藏的不想被截取的窗體內(nèi)容,且屏幕內(nèi)容是實(shí)時更新時截屏截取到的內(nèi)容也是最新的內(nèi)容,連續(xù)截屏不會有窗體閃爍現(xiàn)象,適用于監(jiān)視屏幕的整個或者部分區(qū)域等實(shí)時性要求很高情況下的截屏。
文檔編號G06F9/44GK102023852SQ20091019007
公開日2011年4月20日 申請日期2009年9月15日 優(yōu)先權(quán)日2009年9月15日
發(fā)明者謝鋒 申請人:深圳市巨龍科教高技術(shù)股份有限公司