專利名稱:一種對接收圖片進行完整顯示的方法及客戶端的制作方法
技術領域:
本發明涉及計算機技術,尤其涉及一種對接收圖片進行完整顯示的方法及客戶端。
背景技術:
網絡即時通信(IM,Instant Messenger)工具發展到今天,已經被大多數的網絡用戶所接受,而且逐漸成為網絡用戶日常生活中不可缺少的一部分,網絡即時通信工具不但被使用在網絡用戶的工作中,同樣也大量使用在網絡用戶的業余生活中,用戶通過網絡即時通信工具可以實現與聯系人即時有效的溝通。
在網絡用戶使用即時通信工具與聯系人進行溝通的過程中,不但需要文字方式的交流溝通,同時也需要其他的溝通方式,例如各種自定義表情以及各種圖片的傳輸可極大豐富用戶溝通的趣味性,目前各種即時通信工具普遍具有支持自定義表情及圖片傳輸的功能。
目前網絡即時通信工具對接收到的圖片進行顯示的過程為發送客戶端在發送圖片時,在發送消息數據包中指定該數據包的消息類型為發送圖片消息;接收客戶端接收該數據包,對其進行解密及解析操作,提取出其中的消息類型字段,如果消息類型是普通文本消息,則接收客戶端直接顯示接收到的普通文本消息,如果消息類型是發送圖片消息,則接收客戶端利用數據包中的IP地址及PORT端口打開相應的TCP連接套接字,與發送客戶端的TCP套接字進行連接,連接成功后進行圖片數據包的接收,接收成功后,接收客戶端在消息窗口中對接收到的圖片進行顯示。
采用上述技術方案,接收客戶端只負責對圖片進行接收與顯示,但由于受即時通信工具消息窗口大小的限制,當發送客戶端發送的圖片的高度或寬度超過了即時通信工具消息窗口最大化時的高度或寬度的時候,接收客戶端就無法對圖片進行完整的顯示,這種情況下,用戶在接收客戶端只能查看到部分的圖片。
另外,由于某些接收到的圖片在顯示時會占用大部分的消息窗口,會導致其他文本消息的顯示區域變小,從而可能會給用戶帶來溝通的不便,尤其在用戶接收圖片的數量較多時,會給用戶的文本消息溝通帶來一定的干擾。
發明內容
本發明提供一種對接收圖片進行完整顯示的方法及客戶端,用以解決現有技術中客戶端無法根據用戶的需要對接收圖片的顯示尺寸進行調整的問題。
本發明方法包括一種對接收圖片進行完整顯示的方法,包括步驟A、提取所述接收圖片的尺寸參數,在該圖片的尺寸參數大于預設門限參數時,根據預設尺寸建立位圖對象;B、將所述接收圖片的顏色與像素數據復制到所述位圖對象中,在消息窗口內完整顯示該位圖對象。
所述預設門限參數根據消息窗口的正常顯示尺寸或最大顯示尺寸或用戶設定的任意尺寸設置。
所述預設尺寸根據消息窗口的正常顯示尺寸或最大顯示尺寸設定。
所述尺寸參數包括長度和寬度,所述門限參數包括長度門限和寬度門限,所述預設尺寸包括預設長度和預設寬度。
所述步驟A中建立位圖對象的過程為分別計算接收圖片的長度與預設長度的比值,以及接收圖片的寬度與預設寬度的比值,將比值中的較大值確定為調整比率;建立位圖對象,該位圖對象的長度等于所述接收圖片的長度除以所述調整比率,該位圖對象的寬度等于所述接收圖片的寬度除以所述調整比率。
所述步驟A前還包括對所述接收圖片進行保存,并記錄其保存路徑的步驟。
所述步驟B后還包括在對消息窗口內顯示的位圖對象執行另存到目標路徑的操作時,根據所述接收圖片的保存路徑記錄,將該路徑中保存的接收圖片復制到所述目標路徑中的步驟。
所述步驟B后還包括需要在消息窗口內顯示所述接收圖片時,根據所述接收圖片的保存路徑記錄,將該路徑中保存的接收圖片顯示在消息窗口中的步驟。
所述步驟B具體包括步驟將接收圖片的顏色與像素數據復制到所述位圖對象中,對該位圖對象進行保存,并記錄其保存路徑;根據所述保存路徑裝載并在消息窗口中完整顯示所述位圖對象。
所述步驟B后還包括在關閉所述消息窗口時,根據所述位圖對象的保存路徑刪除該位圖對象的步驟。
所述步驟A中還包括所述接收圖片的尺寸參數小于或等于預設門限參數時,在消息窗口內完整顯示所述接收圖片的步驟。
一種對接收圖片進行完整顯示的客戶端,包括用于接收圖片的圖片接收模塊,還包括比較模塊,與圖片接收模塊連接,用于將所述接收圖片的尺寸參數與預設門限參數進行比較;位圖對象生成模塊,與圖片接收模塊及比較模塊分別連接,用于在所述接收圖片的尺寸參數大于預設門限參數時,根據預設尺寸建立位圖對象,并將所述接收圖片的顏色與像素數據復制到該位圖對象中;位圖對象顯示模塊,與位圖對象生成模塊連接,用于顯示所述位圖對象。
所述客戶端還包括圖片存儲模塊,與圖片接收模塊連接,用于對圖片接收模塊接收的圖片進行存儲;原始圖片顯示模塊,與圖片存儲模塊連接,用于對原始接收圖片進行裝載顯示。
所述預設門限參數根據消息窗口的正常顯示尺寸或最大顯示尺寸設定。
所述預設尺寸根據消息窗口的正常顯示尺寸或最大顯示尺寸設定。
本發明有益效果如下本發明提出了一種對接收圖片進行完整顯示的方法及客戶端,運用本發明的技術方案,使得客戶端在接收到尺寸參數大于預設門限參數的圖片時,可根據預設尺寸建立位圖對象,并將所述接收圖片的顏色與像素數據復制到所述位圖對象中,通過在消息窗口內完整顯示該位圖對象對接收圖片進行查看。本發明中用戶可以根據自己的喜好對接收到的圖片在消息窗口內的顯示尺寸進行合理設置,使得接收到的圖片可根據用戶設置的顯示尺寸顯示在消息窗口中,從而極大的提高用戶之間溝通的有效性,同時也給用戶之間的溝通提供了更好的趣味性,達到有效即時溝通的目的。
圖1為本發明第一種對接收圖片進行完整顯示的方法的流程圖;圖2為本發明第二種對接收圖片進行完整顯示的方法的流程圖;圖3為本發明第三種對接收圖片進行完整顯示的方法的流程圖;圖4為本發明的對接收圖片進行完整顯示的客戶端的結構框圖。
具體實施例方式
現有技術中即時通信客戶端由于受消息窗口的顯示尺寸的限制,在接收到尺寸大于消息窗口的正常顯示尺寸小于消息窗口的最大顯示尺寸的圖片時,必須手動將消息窗口最大化以顯示接收到的圖片,而在接收到尺寸大于消息窗口的最大顯示尺寸的圖片時,則該圖片無法在消息窗口中完整顯示。
另外,由于現有技術中某些接收到的圖片在顯示時會占用大部分的消息窗口,會導致其他文本消息的顯示區域變小,從而可能會給用戶帶來溝通的不便,尤其在用戶接收圖片的數量較多時,會給用戶的文本消息溝通帶來一定的干擾。
為此,本發明預先在即時通信客戶端中設置門限參數,若接收到的圖片的尺寸參數大于該門限參數,則根據預設尺寸建立位圖對象,將接收到的圖片的顏色與像素數據復制到該位圖對象中,并在客戶端的消息窗口內顯示該位圖對象。從而解決了客戶端無法根據用戶的需要對接收圖片的顯示尺寸進行調整的問題。
請參閱圖1,該圖為本發明第一種對接收圖片進行完整顯示的方法的流程圖,其主要實現過程為步驟S10、根據消息窗口的正常顯示尺寸預先在接收客戶端中設置相應的門限參數,該門限參數包括長度門限和寬度門限,其中長度門限等于消息窗口的正常顯示尺寸參數中的長度參數,寬度門限等于消息窗口的正常顯示尺寸參數中的寬度參數。
步驟S11、發送方在發送客戶端的消息窗口中粘貼圖片,對該圖片執行發送操作,系統在臨時目錄下復制該圖片文件,利用Windows GUID API函數生成新的圖片文件名稱,并利用Windows文件API函數重新命名該圖片文件。發送客戶端將圖片的文件名稱、本地IP地址、圖片發送TCP通道的PORT端口及消息類型組合到數據包中,通過查詢接收客戶端的動態信息得到對方登錄的IP地址以及PORT端口生成發送套接字,利用該發送套接字向接收客戶端發送圖片發送消息數據包,同時發送客戶端利用本地IP地址及圖片發送TCP通道的PORT端口生成TCP偵聽套接字,利用該偵聽套接字偵聽TCP的連接。
步驟S12、接收方客戶端在特定的套接字異步等待消息數據包,對接收到的消息數據包進行解密及解析操作,提取出數據包中消息類型字段,判斷該消息類型是否為圖片發送消息,若是,執行步驟S13,否則,根據消息類型執行相應的處理。
步驟S13、接收方客戶端提取出數據包中發送客戶端的IP地址以及圖片發送TCP通道的PORT端口,生成新的TCP套接字,利用與該TCP套接字相關的Windows API函數連接步驟S11中發送客戶端的TCP偵聽套接字,在TCP連接成功后,接收方客戶端利用Windows API函數進行圖片數據包的接收,接收成功后,將接收到的圖片文件以步驟S12中解析出的圖片文件名稱保存到臨時文件目錄中。
步驟S14、接收客戶端根據Windows的IPicture接口裝載接收到的圖片文件,利用接口函數得到該圖片的長度與寬度,將圖片的尺寸參數與預設門限進行比較,若圖片的實際長度大于預設長度門限和/或圖片的實際寬度大于預設寬度門限,則執行步驟S15,否則,在客戶端的消息窗口中直接顯示接收到的圖片,由于圖片的尺寸參數小于消息窗口的正常顯示尺寸,因此在消息窗口中可以完整的顯示該圖片。
步驟S15、利用Windows的窗口API函數獲取到當前消息窗口的屏幕設備上下文(DC,Device Context),同時利用Windows屏幕設備上下文相關API生成與當前屏幕兼容的用于在內存中進行圖片的壓縮的內存設備上下文。
步驟S16、分別計算接收圖片的長度與消息窗口的正常顯示長度的比值,以及接收圖片的寬度與消息窗口的正常顯示寬度的比值,將比值中的較大值確定為調整比率,建立與步驟S15中得到的內存設備上下文對應的位圖對象,該位圖對象的長度等于所述接收圖片的長度除以所述調整比率,該位圖對象的寬度等于所述接收圖片的寬度除以所述調整比率。
步驟S17、將接收圖片的顏色與像素數據復制到該位圖對象中,對該位圖對象進行保存,并記錄其保存路徑,在客戶端的消息窗口根據保存路徑裝載位圖對象,該位圖對象可在消息窗口的正常顯示范圍內完整顯示,這個時候用戶可以查看到完整的圖片。
若用戶需要另存原始接收的圖片,則用戶可通過對消息窗口內顯示的位圖對象執行另存操作,由接收客戶端根據步驟S13中接收圖片的保存路徑記錄,將保存路徑中保存的接收圖片復制到另存的目標路徑,從而可以保證用戶另存的圖片為原始接收的圖片。
另外,若用戶需要在消息窗口內對原始接收的圖片進行顯示時,接收客戶端可根據步驟S13中接收圖片的保存路徑記錄,將原始接收的圖片顯示在消息窗口中。
步驟S18、接收客戶端將位圖對象的保存路徑保存到臨時文件路徑數據鏈表中,用戶在關閉消息窗口時,接收客戶端需要遍歷臨時文件路徑數據鏈表,對所有的臨時文件進行刪除,這樣接收客戶端就可以自動刪除位圖對象,以保證不會由于占用空間對用戶的操作系統造成影響,本步驟為可選步驟。
上述第一種對接收圖片進行完整顯示的方法中,用戶根據消息窗口的正常顯示尺寸完成門限參數的設置,門限參數的設置還可以根據消息窗口的最大顯示尺寸來進行。請參閱圖2,該圖為本發明第二種對接收圖片進行完整顯示的方法的流程圖,其主要實現過程為步驟S20、根據消息窗口的最大顯示尺寸預先在接收客戶端中設置相應的門限參數,該門限參數包括長度門限和寬度門限,該長度門限等于消息窗口的最大顯示尺寸參數中的長度參數,該寬度門限等于消息窗口的最大顯示尺寸參數中的寬度參數。
步驟S21至步驟S23、與上述步驟S11至步驟S13相同,不再贅述。
步驟S24、接收客戶端根據Windows的IPicture接口裝載接收到的圖片文件,利用接口函數得到該圖片的長度與寬度,將圖片的尺寸參數與預設門限進行比較,若圖片的實際長度大于預設長度門限和/或圖片的實際寬度大于預設寬度門限,則執行步驟S25,否則,在客戶端的消息窗口中直接顯示接收到的圖片,發送最大化窗口的Windows消息使得消息窗口最大化,以便完整顯示接收到的圖片。
步驟S25、與上述步驟S15相同,不再贅述。
步驟S26、分別計算接收圖片的長度與消息窗口的正常顯示長度的比值,以及接收圖片的寬度與消息窗口的正常顯示寬度的比值;或者分別計算接收圖片的長度與消息窗口的最大顯示長度的比值,以及接收圖片的寬度與消息窗口的最大顯示寬度的比值,將比值中的較大值確定為調整比率。
步驟S27、建立與步驟S25中得到的內存設備上下文對應的位圖對象,該位圖對象的長度等于所述接收圖片的長度除以所述調整比率,該位圖對象的寬度等于所述接收圖片的寬度除以所述調整比率,將接收圖片的顏色與像素數據復制到該位圖對象中,對該位圖對象進行保存,并記錄其保存路徑。
步驟S28、在客戶端的消息窗口根據保存路徑裝載位圖對象,若建立位圖對象時使用的調整比率是接收圖片的長度與消息窗口的正常顯示長度的比值及接收圖片的寬度與消息窗口的正常顯示寬度的比值中的最大值,則該位圖對象可在消息窗口的正常顯示范圍內完整顯示。若建立位圖對象時使用的調整比率是接收圖片的長度與消息窗口的最大顯示長度的比值及接收圖片的寬度與消息窗口的最大顯示寬度的比值中的最大值,則需要發送最大化窗口的Windows消息使得消息窗口最大化,該位圖對象可在消息窗口的最大顯示范圍內完整顯示。
更進一步,按照消息窗口的正常顯示尺寸或最大顯示尺寸設置門限參數及建立位圖對象以實現接收圖片在消息窗口中的完整顯示,可能會帶來使其他文本消息的顯示區域變小的問題,從而可能會給用戶帶來溝通的不便,尤其在用戶接收圖片的數量較多時,會給用戶的文本消息溝通帶來一定的干擾。
為此,在本發明中用戶可根據自己的需要對門限參數及位圖對象的顯示尺寸進行設置,請參閱圖3,該圖為本發明第三種對接收圖片進行完整顯示的方法的流程圖,其主要實現過程為步驟S30、根據用戶的需要預先在接收客戶端中設置門限參數,該門限參數包括長度門限和寬度門限,例如長度門限為8CM,寬度門限為6CM,在接收客戶端中預先設置圖片顯示尺寸,包括預設長度和預設寬度,例如預設長度為2CM,預設寬度為1.5CM。
步驟S31至步驟S33、與上述步驟S11至步驟S13相同,不再贅述。
步驟S34、接收客戶端根據Windows的IPicture接口裝載接收到的圖片文件,利用接口函數得到該圖片的長度與寬度,將圖片的尺寸參數與預設門限進行比較,若圖片的實際長度大于預設長度門限和/或圖片的實際寬度大于預設寬度門限,則執行步驟S35,否則,在客戶端的消息窗口中直接顯示接收到的圖片。
步驟S35、與上述步驟S15相同,不再贅述。
步驟S36、分別計算接收圖片的長度與預設長度的比值,以及接收圖片的寬度與預設寬度的比值,將比值中的較大值確定為調整比率。
步驟S37、建立與步驟S35中得到的內存設備上下文對應的位圖對象,該位圖對象的長度等于所述接收圖片的長度除以所述調整比率,該位圖對象的寬度等于所述接收圖片的寬度除以所述調整比率,將接收圖片的顏色與像素數據復制到該位圖對象中,對該位圖對象進行保存,并記錄其保存路徑。
步驟S38、在客戶端的消息窗口根據保存路徑裝載位圖對象,在消息窗口內顯示該位圖對象。
同樣地,若用戶需要在消息窗口內對原始接收的圖片進行顯示時,接收客戶端可根據步驟S33中接收圖片的保存路徑記錄,將原始接收的圖片顯示在消息窗口中。
相應地,本發明還提出了一種對接收圖片進行完整顯示的客戶端,請參閱圖3,該圖為本發明的對接收圖片進行完整顯示的客戶端的結構框圖,其主要組成部分包括圖片接收模塊,用于接收圖片;圖片存儲模塊,與圖片接收模塊連接,用于對圖片接收模塊接收的圖片進行存儲;比較模塊,與圖片接收模塊連接,用于將接收到的圖片的尺寸參數與預設其中的門限參數進行比較;位圖對象生成模塊,與圖片接收模塊及比較模塊分別連接,用于在接收到的圖片的尺寸參數大于預設門限參數時,根據預設尺寸建立位圖對象,并將所述接收圖片的顏色與像素數據復制到該位圖對象中。
位圖對象顯示模塊,與位圖對象生成模塊連接,用于顯示所述位圖對象。
原始圖片顯示模塊,與圖片存儲模塊連接,用于對原始接收圖片進行裝載顯示。
綜上所述可知,本發明中用戶可以根據自己的喜好對接收到的圖片在消息窗口內的顯示尺寸進行合理設置,使得接收到的圖片可根據用戶設置的顯示尺寸顯示在消息窗口中,從而極大的提高用戶之間溝通的有效性,同時也給用戶之間的溝通提供了更好的趣味性,達到有效即時溝通的目的。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種對接收圖片進行完整顯示的方法,其特征在于,包括步驟A、提取所述接收圖片的尺寸參數,在該圖片的尺寸參數大于預設門限參數時,根據預設尺寸建立位圖對象;B、將所述接收圖片的顏色與像素數據復制到所述位圖對象中,在消息窗口內完整顯示該位圖對象。
2.如權利要求1所述的方法,其特征在于,所述預設門限參數根據消息窗口的正常顯示尺寸或最大顯示尺寸或用戶設定的任意尺寸設置。
3.如權利要求1或2所述的方法,其特征在于,所述預設尺寸根據消息窗口的正常顯示尺寸或最大顯示尺寸設定。
4.如權利要求1所述的方法,其特征在于,所述尺寸參數包括長度和寬度,所述門限參數包括長度門限和寬度門限,所述預設尺寸包括預設長度和預設寬度。
5.如權利要求4所述的方法,其特征在于,所述步驟A中建立位圖對象的過程為分別計算接收圖片的長度與預設長度的比值,以及接收圖片的寬度與預設寬度的比值,將比值中的較大值確定為調整比率;建立位圖對象,該位圖對象的長度等于所述接收圖片的長度除以所述調整比率,該位圖對象的寬度等于所述接收圖片的寬度除以所述調整比率。
6.如權利要求1所述的方法,其特征在于,所述步驟A前還包括對所述接收圖片進行保存,并記錄其保存路徑的步驟。
7.如權利要求6所述的方法,其特征在于,所述步驟B后還包括在對消息窗口內顯示的位圖對象執行另存到目標路徑的操作時,根據所述接收圖片的保存路徑記錄,將該路徑中保存的接收圖片復制到所述目標路徑中的步驟。
8.如權利要求6所述的方法,其特征在于,所述步驟B后還包括需要在消息窗口內顯示所述接收圖片時,根據所述接收圖片的保存路徑記錄,將該路徑中保存的接收圖片顯示在消息窗口中的步驟。
9.如權利要求1所述的方法,其特征在于,所述步驟B具體包括步驟將接收圖片的顏色與像素數據復制到所述位圖對象中,對該位圖對象進行保存,并記錄其保存路徑;根據所述保存路徑裝載并在消息窗口中完整顯示所述位圖對象。
10.如權利要求9所述的方法,其特征在于,所述步驟B后還包括在關閉所述消息窗口時,根據所述位圖對象的保存路徑刪除該位圖對象的步驟。
11.如權利要求1所述的方法,其特征在于,所述步驟A中還包括所述接收圖片的尺寸參數小于或等于預設門限參數時,在消息窗口內完整顯示所述接收圖片的步驟。
12.一種對接收圖片進行完整顯示的客戶端,包括用于接收圖片的圖片接收模塊,其特征在于,還包括比較模塊,與圖片接收模塊連接,用于將所述接收圖片的尺寸參數與預設門限參數進行比較;位圖對象生成模塊,與圖片接收模塊及比較模塊分別連接,用于在所述接收圖片的尺寸參數大于預設門限參數時,根據預設尺寸建立位圖對象,并將所述接收圖片的顏色與像素數據復制到該位圖對象中;位圖對象顯示模塊,與位圖對象生成模塊連接,用于顯示所述位圖對象。
13.如權利要求12所述的客戶端,其特征在于,還包括圖片存儲模塊,與圖片接收模塊連接,用于對圖片接收模塊接收的圖片進行存儲;原始圖片顯示模塊,與圖片存儲模塊連接,用于對原始接收圖片進行裝載顯示。
14.如權利要求12所述的客戶端,其特征在于,所述預設門限參數根據消息窗口的正常顯示尺寸或最大顯示尺寸設定。
15.如權利要求12或14所述的客戶端,其特征在于,所述預設尺寸根據消息窗口的正常顯示尺寸或最大顯示尺寸設定。
全文摘要
本發明公開了一種對接收圖片進行完整顯示的方法及客戶端,用以解決現有技術中客戶端無法根據用戶的需要對接收圖片的顯示尺寸進行調整的問題。本發明使得客戶端在接收到尺寸參數大于預設門限參數的圖片時,可根據預設尺寸建立位圖對象,并將所述接收圖片的顏色與像素數據復制到所述位圖對象中,通過在消息窗口內完整顯示該位圖對象對接收圖片進行查看。采用本發明用戶可以根據自己的喜好對接收到的圖片在消息窗口內的顯示尺寸進行合理設置,使得接收到的圖片可根據用戶設置的顯示尺寸顯示在消息窗口中,從而極大的提高用戶之間溝通的有效性,同時也給用戶之間的溝通提供了更好的趣味性,達到有效即時溝通的目的。
文檔編號H04L12/58GK1980137SQ20051013042
公開日2007年6月13日 申請日期2005年12月9日 優先權日2005年12月9日
發明者李斌, 姚文彬 申請人:騰訊科技(深圳)有限公司