專利名稱:截圖方法、截圖裝置及即時通訊客戶端的制作方法
技術領域:
本發(fā)明涉及圖像處理技術領域,特別是截圖方法、截圖裝置以及即時通訊客戶端。
背景技術:
隨著互聯(lián)網(wǎng)技術的發(fā)展,即時通信(IM)工具已經(jīng)是廣大網(wǎng)絡用戶不可缺少的網(wǎng)絡工具。IM工具通過點對點的技術來實現(xiàn)互聯(lián)網(wǎng)上的即時溝通,甚至是幾個用戶的群聊。
在利用IM工具進行溝通的過程中,用戶不僅需要向?qū)Ψ桨l(fā)送文字信息,還需要向?qū)Ψ桨l(fā)送圖像信息,所述圖像信息可以是預先保存的圖像文件,也可以是即時從當前計算機屏幕背景圖像中截取的圖像。
在現(xiàn)有的IM工具中,有些IM工具已經(jīng)可以提供截圖功能。用戶在IM工具聊天窗口的工具條中點擊捕捉屏幕按鈕,可以進入屏幕捕捉的界面,然后通過鼠標左鍵選擇目標捕捉,即按下鼠標左鍵后將鼠標從坐標(x1,y1)移到坐標(x2,y2),則以x=x1、x=x2、y=y(tǒng)1、y=y(tǒng)2四條直線圍成的矩形為邊界截取圖像,然后在選擇的范圍內(nèi)雙擊左鍵即可確定捕捉的圖像,選定的圖像會自動導入到聊天窗口的輸入欄中。在捕捉過程中,用戶還可以使用鼠標右鍵或者鍵盤的Esc鍵退出捕捉。
但是,現(xiàn)有IM工具的截圖功能具有如下的缺點1)只提供用戶截取矩形形狀的屏幕背景,靈活性不好。比如用戶在截取屏幕時可能只想讓對方看到屏幕某部分內(nèi)容而其它是不能給看到,用矩形形狀選取的屏幕截圖就不能很靈活地處理這樣的問題。
2)在截圖后不能進行即時編輯,有時用戶需要對截圖進行說明,給予對方更多的提示時,還需要在文字信息輸入框里輸入許多文字才能解釋清楚。比如用戶截取了一個多人合照的圖像并且想讓對方知道每個人的名字,那么用戶還需要在文字信息輸入框里這樣描述“左邊第一個是張三,右邊倒數(shù)第二個是李四”。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提出了一種截圖方法,用以截取任意形狀的圖像。本發(fā)明的另一個目的在于提出一種截圖裝置。本發(fā)明的再一個目的在于提出一種即時通訊客戶端。
根據(jù)上述目的,本發(fā)明提供了一種截圖方法,該方法包括A.在屏幕背景圖像中確定初始化選區(qū);B.記錄鼠標在初始化選區(qū)內(nèi)的移動軌跡,將鼠標移動軌跡所圍成的區(qū)域確定為選區(qū);C.將屏幕背景圖像中與所述選區(qū)對應的范圍保存為選區(qū)圖像。
所述步驟B包括對鼠標移動軌跡經(jīng)過的坐標添加標記,逐行遍歷初始化選區(qū)的坐標,在各行中第奇數(shù)次遇到所述標記時記錄對應的坐標為選區(qū)邊界的開始坐標,第偶數(shù)次遇到所述標記時記錄對應的坐標為選區(qū)邊界的結(jié)束坐標,并將相鄰開始坐標與結(jié)束坐標之間的區(qū)域記錄為該行的選區(qū);或者,對鼠標移動軌跡經(jīng)過的坐標添加標記,逐列遍歷初始化選區(qū)的坐標,在各列中第奇數(shù)次遇到所述標記時記錄對應的坐標為選區(qū)邊界的開始坐標,第偶數(shù)次遇到所述標記時記錄對應的坐標為選區(qū)邊界的結(jié)束坐標,并將相鄰開始坐標與結(jié)束坐標之間的區(qū)域記錄為該列的選區(qū)。
步驟B進一步包括在初始化選區(qū)內(nèi)移動所述選區(qū)的步驟。
步驟C進一步包括對所述選區(qū)圖像進行編輯的步驟。
步驟C中所述保存包括獲取選區(qū)的橫坐標最小值和最大值以及縱坐標的最小值和最大值,并確定一矩形圖像,該矩形圖像至少包括由所述橫坐標最小值和最大值以及縱坐標的最小值和最大值界定的矩形;讀取所述選區(qū)圖像,并添加到所述矩形圖像中;保存所述矩形圖像為選區(qū)圖像。
步驟C之后進一步包括通過即時通訊工具發(fā)送所述選區(qū)圖像。
本發(fā)明還提供了一種截圖裝置,該裝置包括鍵盤鼠標事件捕捉模塊、選區(qū)確定模塊、圖像處理模塊,其中鍵盤鼠標事件捕捉模塊,用于記錄鼠標移動軌跡,并提供給選區(qū)確定模塊;選區(qū)確定模塊,用于將所述鼠標移動軌跡所圍成的區(qū)域確定為選區(qū);圖像處理模塊,用于將屏幕背景圖像中與所述選區(qū)對應的范圍保存為選區(qū)圖像。
該裝置進一步包括圖像即時編輯模塊,用于對所述選區(qū)圖像進行編輯。
所述鍵盤鼠標事件捕捉模塊進一步用于在確定選區(qū)后獲取鼠標拖拉的始起點和目標點;所述選區(qū)確定模塊進一步根據(jù)所述起始點和目標點移動所述選區(qū)。
本發(fā)明還提供了一種包括上述截圖裝置的即時通訊客戶端,該即時通訊工具還包括客戶端通信模塊,用于發(fā)送所述選區(qū)圖像。
從上述方案中可以看出,由于本發(fā)明在選區(qū)時記錄鼠標移動軌跡,將鼠標移動軌跡所圍成的區(qū)域確定為選區(qū),并將屏幕背景圖像中與所述選區(qū)對應的范圍保存為選區(qū)圖像,從而能夠截取鼠標移動畫出的任意形狀的圖像。本發(fā)明還可以在確定選區(qū)后移動該選區(qū),使得用戶在確定選區(qū)有所偏差時不必重新用鼠標畫選區(qū),而只需要將原選區(qū)移動到所要截取圖像的位置即可。本發(fā)明還可以對選區(qū)圖像進行即時的編輯,避免了用戶通過復雜的手段對圖像中的內(nèi)容進行說明等,大大方便了用戶的使用。進一步,本發(fā)明可以應用到即時通訊客戶端中,這樣,用戶可以通過即時通訊客戶端截取任意形狀圖像并發(fā)送給其它即時通訊客戶端。
圖1為本發(fā)明實施例中截圖裝置的示意圖;
圖2為本發(fā)明實施例中通過鼠標移動軌跡確定選區(qū)的示意圖;圖3為本發(fā)明實施例中圖像即時編輯模塊所提供的功能按鈕示意圖;圖4和圖5為本發(fā)明實施例中編輯選區(qū)圖像的示意圖;圖6為本發(fā)明實施例所得到的選區(qū)圖像的示意圖;圖7為本發(fā)明實施例中即時通訊客戶端的結(jié)構示意圖;圖8為本發(fā)明實施例的流程示意圖。
具體實施例方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,以下舉實施例對本發(fā)明進一步詳細說明。
圖1為本發(fā)明實施例中截圖裝置100的結(jié)構示意圖。參見圖1,該截圖裝置100包括鍵盤鼠標事件捕捉模塊10、選區(qū)確定模塊20、圖像處理模塊30,還可以進一步包括圖像即時編輯模塊40。
在圖1所示的截圖裝置100中,鍵盤鼠標事件捕捉模塊10主要接收鍵盤和鼠標事件,例如記錄鼠標移動軌跡并提供給選區(qū)確定模塊20;接收鍵盤的輸入以及鼠標的輸入,諸如鍵盤輸入的退出(Esc)、回車(Enter)以及鼠標的拖拉、左鍵單擊、右鍵單擊、左鍵雙擊等,并提供給選區(qū)確定模塊20。
選區(qū)確定模塊20將所述鼠標移動軌跡所圍成的區(qū)域確定為選區(qū),在此之前,還可以在屏幕背景圖案中確定初始化選區(qū),通常確定初始化選區(qū)為整個屏幕背景圖像。
選區(qū)確定模塊20確定選區(qū)的方法如下在確定初始化選區(qū)時,將屏幕中所有像素點坐標的標記置為0,接收到鍵盤鼠標事件捕捉模塊10發(fā)送來的鼠標移動軌跡后,將鼠標移動軌跡經(jīng)過坐標的標記置為1,那么在整個屏幕中,鼠標移動軌跡經(jīng)過的像素點坐標都標記為1,鼠標未經(jīng)過的像素點坐標仍標記為0;然后逐行遍歷初始化選區(qū)的坐標,在各行中第奇數(shù)次遇到所述標記為1的坐標時,記錄對應的坐標為選區(qū)邊界的開始坐標,第偶數(shù)次遇到所述標記為1的坐標時,記錄對應的坐標為選區(qū)邊界的結(jié)束坐標,并將相鄰開始坐標與結(jié)束坐標之間的區(qū)域記錄為該行的選區(qū),例如在某行第1次標記為1的坐標與第2次標記為1的坐標之間的區(qū)域或者第5次標記為1的坐標與第6次標記為1的坐標之間的區(qū)域;逐行遍歷以后,就得到整個屏幕的選區(qū)。圖2所示的是通過鼠標移動軌跡確定選區(qū)的示意圖,在圖2中,由鉛筆所示的鼠標在屏幕背景圖像上通過移動形成了一個不規(guī)則的圓形,并確定為選區(qū)。
當然,在確定選區(qū)時,也可以逐列地遍歷坐標,具體實現(xiàn)與逐行遍歷相似,這里不再贅述。
進一步,在確定了選區(qū)之后,如果鍵盤鼠標事件捕捉模塊10捕捉到鼠標拖拉信息,并將鼠標拖拉的起始點和目標點坐標發(fā)送給選區(qū)確定模塊20,則選區(qū)確定模塊20進一步可以根據(jù)起始點和目標點坐標移動選區(qū),并且保持選區(qū)的形狀。簡單來說,就是計算目標點坐標與起始點坐標的差值,然后將選區(qū)的所有坐標統(tǒng)一加上該差值。如果還沒有確定選區(qū),則根據(jù)鼠標的拖拉軌跡確定選區(qū)。
圖像處理模塊30用于將屏幕背景圖像中與所述選區(qū)對應的范圍保存為選區(qū)圖像。在確定選區(qū)之后,圖像處理模塊30將選區(qū)以外的部分以某種透明色遮蓋,從而與選區(qū)區(qū)分開來,進一步,還可以在鼠標移到選區(qū)內(nèi)部時,將鼠標形狀顯示為表示可以進行拖拉的光標,而在鼠標移到選區(qū)外部時,將鼠標形狀顯示為鉛筆形狀。當鍵盤鼠標事件捕捉模塊10接收到鼠標雙擊時,圖像處理模塊30獲取選區(qū)的橫坐標最小值Xmin、橫坐標最大值Xmax、縱坐標最小值Ymin以及縱坐標最大值Ymax,然后確定一個矩形圖像,該矩形圖像的四個頂點可以為(Xmin,Ymin)、(Xmin,Ymax)(Xmax,Ymin)(Xmax,Ymax),也可以比這四個點確定的矩形大,也就是說所確定的矩形至少要包括這四個點,顯然選區(qū)在這個矩形之內(nèi)。之后,圖像處理模塊30讀取選區(qū)圖像,把所讀取的選區(qū)圖像添加到上面確定矩形圖像中,然后保存,這樣實現(xiàn)了對選區(qū)圖像的保存。
繼續(xù)參照圖1,本發(fā)明實施例的截圖裝置100還可以進一步包括用于對選區(qū)圖像進行編輯的圖像即時編輯模塊40。該圖像即時編輯模塊40所提供的功能與一般圖像編輯軟件所具有的功能相似,例如鉛筆、橡皮擦、直線、直線箭頭、矩形、圓形、文本框、顏色選擇和高亮等。圖像即時編輯模塊40在屏幕上顯示與這些功能響應的按鈕,這些按鈕如圖3所示,當接收到用戶選擇某按鈕的信息后,調(diào)用相應的功能單元,對圖形進行編輯。例如,如圖4所示,在圖4中通過鉛筆功能在選區(qū)圖像上寫、畫,還可以利用橡皮擦功能擦去所寫的字,還可以使用顏色選擇功能選擇鉛筆、直線、直線箭頭、矩形、圓形、文本框等的顏色。如圖5所示,在圖中從左到右本別是矩形、圓形、文本框、直線箭頭功能的展示。圖6為本發(fā)明實施例中所得到選區(qū)圖像的示意圖。
圖7是本發(fā)明實施例中即時通訊客戶端200的結(jié)構示意圖。參照圖7,即時通訊客戶端200包括客戶端通訊模塊50以及截圖裝置100。其中客戶端通訊模塊50是即時通訊客戶端的重要組成部分,此模塊主要集成了文字聊天通信、圖片傳輸、音頻/視頻傳輸?shù)裙δ?,在本發(fā)明實施例中,客戶端通訊模塊50提供了截圖裝置100的入口,并且在截圖裝置100將得到的選區(qū)圖像提供給客戶端通訊模塊50后,該客戶端通訊模塊50將選區(qū)圖像導入到聊天窗口輸入框,然后將該選區(qū)圖像發(fā)送給對方。
圖8為本發(fā)明實施例的流程示意圖。這里以圖7所示的即時通訊客戶端為例描述本發(fā)明實施例的截圖過程,該過程包括以下步驟步驟101至步驟102,用戶在客戶端通訊模塊50選擇點擊截圖裝置100的入口,觸發(fā)截圖裝置100進行截圖功能,截圖裝置100進入截圖狀態(tài)。
步驟103,選區(qū)確定模塊20確定初始化選區(qū)為整個屏幕,即此時選區(qū)圖像為整個屏幕背景圖像,并將初始化選區(qū)圖像提供給圖像處理模塊30。
步驟104,圖像即時編輯模塊40對選區(qū)圖像進行編輯,例如采用鉛筆功能進行寫畫;采用橡皮擦功能擦去選區(qū)圖像的某些內(nèi)容;利用直線或直線箭頭功能在選區(qū)圖像中增加直線或帶箭頭的直線;利用矩形或圓形功能,在選區(qū)圖像中添加矩形框或圓形,可以圈出選區(qū)圖像中的部分內(nèi)容;利用文本框在選區(qū)圖像中添加文字內(nèi)容;利用高亮功能突出顯示選區(qū)圖像的部分或全部內(nèi)容;利用顏色選擇功能選擇鉛筆、直線、直線箭頭、矩形、圓形、文字以及高亮的顏色。
步驟105,鍵盤鼠標事件捕捉模塊10捕捉鍵盤鼠標事件,如果捕捉到的是鼠標拖拉,則執(zhí)行步驟108;如果捕捉到的鼠標雙擊,則執(zhí)行步驟111;如果捕捉到的是鼠標右鍵、鍵盤Esc等其他信號,則執(zhí)行步驟106。
步驟106,鍵盤鼠標事件捕捉模塊10將捕捉到的信號傳送給選區(qū)確定模塊20,選區(qū)確定模塊20判斷選區(qū)是否已經(jīng)確定,如果確定則執(zhí)行步驟103;否則執(zhí)行步驟107,退出屏幕捕捉狀態(tài),結(jié)束本流程。
步驟108,鍵盤鼠標事件捕捉模塊10將捕捉到的鼠標拖拉信息傳送給選區(qū)確定模塊20,選區(qū)確定模塊20判斷選區(qū)是否確定,如果確定則執(zhí)行步驟109,否則執(zhí)行步驟110。
步驟109,選區(qū)確定模塊20根據(jù)鼠標拖拉的起始點和目標點移動選區(qū),并保持選區(qū)的形狀不變,然后執(zhí)行步驟104。
步驟110,選區(qū)確定模塊20根據(jù)拖拉軌跡確定選區(qū),然后執(zhí)行步驟104。
步驟111,圖象處理模塊30將選區(qū)圖像導入客戶端通訊模塊50的聊天窗口輸入框,然后客戶端通訊模塊50將所述選區(qū)圖像出去,給即時通訊對端。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種截圖方法,其特征在于,該方法包括A.在屏幕背景圖像中確定初始化選區(qū);B.記錄鼠標在初始化選區(qū)內(nèi)的移動軌跡,將鼠標移動軌跡所圍成的區(qū)域確定為選區(qū);C.將屏幕背景圖像中與所述選區(qū)對應的范圍保存為選區(qū)圖像。
2.根據(jù)權利要求1所述的方法,其特征在于,所述步驟B包括對鼠標移動軌跡經(jīng)過的坐標添加標記,逐行遍歷初始化選區(qū)的坐標,在各行中第奇數(shù)次遇到所述標記時記錄對應的坐標為選區(qū)邊界的開始坐標,第偶數(shù)次遇到所述標記時記錄對應的坐標為選區(qū)邊界的結(jié)束坐標,并將相鄰開始坐標與結(jié)束坐標之間的區(qū)域記錄為該行的選區(qū);或者,對鼠標移動軌跡經(jīng)過的坐標添加標記,逐列遍歷初始化選區(qū)的坐標,在各列中第奇數(shù)次遇到所述標記時記錄對應的坐標為選區(qū)邊界的開始坐標,第偶數(shù)次遇到所述標記時記錄對應的坐標為選區(qū)邊界的結(jié)束坐標,并將相鄰開始坐標與結(jié)束坐標之間的區(qū)域記錄為該列的選區(qū)。
3.根據(jù)權利要求1所述的方法,其特征在于,步驟B進一步包括在初始化選區(qū)內(nèi)移動所述選區(qū)的步驟。
4.根據(jù)權利要求1所述的方法,其特征在于,步驟C進一步包括對所述選區(qū)圖像進行編輯的步驟。
5.根據(jù)權利要求1所述的方法,其特征在于,步驟C中所述保存包括獲取選區(qū)的橫坐標最小值和最大值以及縱坐標的最小值和最大值,并確定一矩形圖像,該矩形圖像至少包括由所述橫坐標最小值和最大值以及縱坐標的最小值和最大值界定的矩形;讀取所述選區(qū)圖像,并添加到所述矩形圖像中;保存所述矩形圖像為選區(qū)圖像。
6.根據(jù)權利要求1所述的方法,其特征在于,步驟C之后進一步包括通過即時通訊工具發(fā)送所述選區(qū)圖像。
7.一種截圖裝置,其特征在于,該裝置包括鍵盤鼠標事件捕捉模塊、選區(qū)確定模塊、圖像處理模塊,其中鍵盤鼠標事件捕捉模塊,用于記錄鼠標移動軌跡,并提供給選區(qū)確定模塊;選區(qū)確定模塊,用于將所述鼠標移動軌跡所圍成的區(qū)域確定為選區(qū);圖像處理模塊,用于將屏幕背景圖像中與所述選區(qū)對應的范圍保存為選區(qū)圖像。
8.根據(jù)權利要求7所述的裝置,其特征在于,該裝置進一步包括圖像即時編輯模塊,用于對所述選區(qū)圖像進行編輯。
9.根據(jù)權利要求7所述的裝置,其特征在于,所述鍵盤鼠標事件捕捉模塊進一步用于在確定選區(qū)后獲取鼠標拖拉的始起點和目標點;所述選區(qū)確定模塊進一步根據(jù)所述起始點和目標點移動所述選區(qū)。
10.一種包括如權利要求7~9中任一項所述截圖裝置的即時通訊客戶端,其特征在于,該即時通訊工具還包括客戶端通信模塊,用于發(fā)送所述選區(qū)圖像。
全文摘要
本發(fā)明公開了一種截圖方法,該方法包括A.在屏幕背景圖像中確定初始化選區(qū);B.記錄鼠標在初始化選區(qū)內(nèi)的移動軌跡,將鼠標移動軌跡所圍成的區(qū)域確定為選區(qū);C.將屏幕背景圖像中與所述選區(qū)對應的范圍保存為選區(qū)圖像。通過本發(fā)明的實施,能夠截取鼠標移動畫出的任意形狀的圖像。本發(fā)明還可以對選區(qū)圖像進行即時的編輯,避免了用戶通過復雜的手段對圖像中的內(nèi)容進行說明等,大大方便了用戶的使用。進一步,本發(fā)明可以應用到即時通訊客戶端中,這樣,用戶可以通過即時通訊客戶端截取任意形狀圖像并發(fā)送給其它即時通訊客戶端。
文檔編號H04L12/58GK101075172SQ200610111548
公開日2007年11月21日 申請日期2006年8月23日 優(yōu)先權日2006年8月23日
發(fā)明者陳堅 申請人:騰訊科技(深圳)有限公司