截屏方法和移動終端與流程
2023-04-26 11:08:52 2
本發明涉及領域,尤其涉及一種截屏方法和移動終端。
背景技術:
目前手機、平板電腦等移動終端的原生作業系統已經提供截屏的功能,但是隨著大量的應用出現,例如瀏覽器、聊天工具等,現有的截屏功能無法完全滿足用戶的需求,比如聊天內容過長,截的一屏無法完全展示全部聊天內容,又比如用戶想把瀏覽器的一條長新聞全部截取下來,那截屏功能就顯得有點無能為力。
請參考圖1,為現有的截屏方法的流程示意圖,包括:步驟S101:截取當前屏幕內容;步驟S102:判斷內容是否截取完全,若是,則執行步驟S103:保存圖片;若否,則執行步驟S104:人為滑動屏幕;隨後繼續執行步驟S101:截取當前屏幕內容,直至內容截取完全。
現有的截屏方法只能截取當前屏幕的內容,無法對超過屏幕內容進行完整的截屏。為了對超過屏幕的內容進行全部截圖,需要進行多次截屏,但是截圖後的內容部能完美拼接,會出現人為滑動造成的偏移。並且,由於保存了多張截圖,造成圖片過多,難以檢索和識別先後順序。
技術實現要素:
本發明所要解決的技術問題是,提供一種截屏方法和移動終端,實現長截屏。
為了解決上述問題,本發明提供了一種截屏方法,包括:截取當前屏幕顯示內容,保存為第一圖片;屏幕顯示內容滑動一預設距離;截取滑動後屏幕顯示內容,保存為第二圖片;計算屏幕顯示內容實際滑動距離;判斷所述實際滑動距離是否大於或等於所述預設距離;若是,則通過實際滑動距離將第二圖片拼接到第一圖片上,形成新的第一圖片並繼續下一次的滑動;若否,則通過實際滑動距離將第二圖片拼接到第一圖片上,作為最終截屏圖片。
可選的,通過實際滑動距離將第二圖片拼接到第一圖片上的方法包括:截取第二圖片自底部向上實際滑動距離再加一固定高度的部分覆蓋第一圖片自底部向上一固定高度的部分,將第二圖片與第一圖片實現拼接。
可選的,通過所述屏幕顯示內容中的控制項位置變化,計算實際滑動距離。
可選的,所述預設距離為屏幕高度的1/2。
可選的,所述固定高度為屏幕高度的1/8~1/4;若所述屏幕內容底部有一保留高度的內容在滑動過程中保留不變,則所述固定高度等於所述保留高度。
為解決上述問題,本發明還提供一種移動終端,包括:截屏模塊,用於截取並保存當前屏幕顯示內容為第一圖片,截取並保存後續屏幕顯示內容為第二圖片;滑動模塊,與所述截屏模塊連接,用於使屏幕顯示內容滑動一預設距離;計算模塊,與所述滑動模塊連接,用於計算屏幕顯示內容的實際滑動距離;判斷模塊,與所述計算模塊連接,用於判斷屏幕顯示內容是否大於或等於所述預設距離;拼接模塊,與所述判斷模塊和截屏模塊連接,當實際滑動距離大於或等於所述預設距離時,所述拼接模塊用於根據實際滑動距離將第二圖片拼接到第一圖片上,形成新的第一圖片,當實際滑動距離小於所述預設距離時,所述拼接模塊用於根據實際滑動距離將第二圖片拼接到第一圖片上,形成最終截屏圖片。
可選的,所述拼接模塊包括:截取單元,用於截取第二圖片自底部向上實際滑動距離再加一固定高度的部分;覆蓋單元,用於將截取單元截取的部分第二圖片覆蓋第一圖片自底部向上一固定高度的部分,將第二圖片與第一圖片實現拼接。
可選的,所述計算模塊用於通過所述屏幕顯示內容中的控制項位置變化,計算實際滑動距離。
可選的,所述預設距離為屏幕高度的1/2。
可選的,所述固定高度為屏幕高度的1/8~1/4;若所述屏幕內容底部有一保留高度的內容在滑動過程中保留不變,則所述固定高度等於所述保留高度。
本發明的截屏方法和移動終端能夠自動對屏幕顯示內容進行滑動,並通過計算滑動距離進行圖片拼接,使得最終獲得的長截屏圖片精準、無縫銜接,能夠直接獲得長截屏圖片。
附圖說明
圖1為本發明的現有技術的截屏方法的流程示意圖;
圖2為本發明一具體實施方式的截屏方法的流程示意圖;
圖3為本發明一具體實施方式的移動終端的結構示意圖。
具體實施方式
下面結合附圖對本發明提供的截屏方法以及移動終端的具體實施方式做詳細說明。
請參考圖2,為本發明一具體實施方式的截屏方法的流程示意圖。
用戶可以通過點擊頁面控制項,開始長截屏操作。移動終端在接收到用戶操作之後,首先執行步驟S201:截取當前屏幕顯示內容,保存為第一圖片。
在開始截屏之前,屏幕顯示內容為需要截屏內容的起始位置,對當前屏幕顯示內容進行截取,並保存為第一圖片,所述第一圖片為起始圖片。可以將所述第一圖片存儲在緩存空間內,供後續圖片拼接時進行調用。
步驟S202:屏幕顯示內容滑動一預設距離。
使屏幕顯示內容向前滑動,以顯示更多後續內容。所述滑動可以由移動終端自動進行,按照一預設距離進行滑動,避免用戶手動滑動時的偏差。
在本發明的一個具體實施方式中,所述預設距離為屏幕高度的1/2,在本發明的其他具體實施方式中,所述預設距離還可以為屏幕高度的1/3~3/4。在很多瀏覽頁面下,屏幕顯示的頂部和/或底部有部分高度的內容為固定不動的,所以,如果預設距離為整個屏幕高度,會導致部分內容被錯過。所以,所述預設距離小於整個屏幕高度。
不同的移動終端,根據屏幕高度不同,所述預設距離會自適應的進行調整。
步驟S203:截取滑動後屏幕顯示內容,保存為第二圖片。
將滑動後的屏幕顯示內容,進行截屏,保存為第二圖片,並存儲在緩存空間內。
步驟S204:計算屏幕顯示內容實際滑動距離。
由於屏幕顯示內容滑動會有加速度,導致實際滑動距離會略大於所述預設距離。為了使最終獲得的長截屏的圖片內容完整,沒有遺漏或重疊,需要對實際滑動距離進行準確計算。在本發明的具體實施方式中,可以通過所述屏幕顯示內容中的控制項位置變化,準確計算實際滑動距離。
通過獲取其中一控制項的初始位置以及滑動後位置,兩者之間的差距即為屏幕顯示內容實際滑動距離。
步驟S205:判斷所述實際滑動距離是否大於或等於所述預設距離。
將所述實際滑動距離與預設距離進行比較,如果實際滑動距離大於預設距離,則表明瀏覽內容還未完全顯示,後續還可以繼續進行滑動;如果實際滑動距離小於預設距離,則表明,瀏覽內容已經完全顯示,後續無法再繼續進行滑動。
若所述實際滑動距離大於或等於所述預設距離,則執行步驟S206:通過實際滑動距離將第二圖片拼接到第一圖片上,形成新的第一圖片並繼續下一次的滑動。
由於實際滑動距離小於屏幕的整體高度,所以,第一圖片和第二圖片之間有部分重複的部分。可以將第二圖片覆蓋第一圖片中的重複部分,實現第一圖片與第二圖片的拼接,形成新的第一圖片。
在本發明的另一具體實施方式中,通過實際滑動距離將第二圖片拼接到第一圖片上的方法包括:截取第二圖片自底部向上實際滑動距離再加一固定高度的部分覆蓋第一圖片自底部向上一固定高度的部分,將第二圖片與第一圖片實現拼接。由於屏幕底部可能具有部分高度的顯示內容在滑動過程中固定不變,截取第二圖片中自底部向上實際滑動距離再加一固定高度的部分,對第一圖片自底部向上一固定高度的部分進行覆蓋,可以將第一圖片中的固定部分覆蓋掉,避免重複。
在本發明的一個具體實施方式中,所述固定高度可以為屏幕高度的1/8~1/4;在本發明的另一具體實施方式中,所述屏幕內容底部有一保留高度的內容在滑動過程中保留不變,則所述固定高度等於所述保留高度。
將第一圖片與第二圖片進行拼接之後,繼續執行步驟S202:使屏幕顯示內容滑動一預設距離,以及後續步驟S203、S204和S205,直至若所述實際滑動距離小於所述預設距離,則執行步驟S207:通過實際滑動距離將第二圖片拼接到第一圖片上,作為最終截屏圖片。所述拼接方法與步驟S206中的拼接方法一致。在形成最終截屏圖片之後,屏幕顯示內容不再發生滑動,用戶可以通過再次點擊屏幕設定的截屏控制項,結束截屏。
步驟S208:保存所述最終截屏圖片。所述最終截屏圖片為一個長截屏圖片,完整顯示當前網頁的所有內容。由於通過滑動距離對多次截屏圖片一次進行拼接,從而避免形成的最終截屏圖片內容沒有遺漏、重複或順序發生錯誤等。在本發明的一個具體實施方式中,可以將最終拼接完成後的截屏圖片顯示在移動終端屏幕上,供用戶查看之後,由用戶決定是否需要保存;在本發明的另一具體實施方式中,也可以由移動終端自動保存。
上述截屏方法,操作簡單,通過計算滑動距離進行圖片拼接,使得最終獲得的長截屏圖片精準、無縫銜接,能夠直接獲得長截屏圖片。
本發明的具體實施方式還提供一種移動終端。
請參考圖3,為所述移動終端的結構示意圖。
所述移動終端包括:截屏模塊301、滑動模塊302、計算模塊303、判斷模塊304和拼接模塊305。
所述截屏模塊301,用於截取並保存當前屏幕顯示內容為第一圖片,截取並保存後續滑動後的屏幕顯示內容為第二圖片。所述第一圖片為起始圖片,第二圖片後續要拼接至第一圖片。
所述滑動模塊302,與所述截屏模塊301連接,用於使屏幕顯示內容滑動一預設距離。使屏幕顯示內容向前滑動,以顯示更多後續內容。所述滑動可以由移動終端自動進行,按照一預設距離進行滑動,避免用戶手動滑動時的偏差。在本發明的一個具體實施方式中,所述預設距離為屏幕高度的1/2,在本發明的其他具體實施方式中,所述預設距離還可以為屏幕高度的1/3~3/4。在很多瀏覽頁面下,屏幕顯示的頂部和/或底部有部分高度的內容為固定不動的,所以,如果預設距離為整個屏幕高度,會導致部分內容被錯過。所以,所述預設距離小於整個屏幕高度。滑動模塊302可以根據不同的移動終端,根據屏幕高度不同,對所述預設距離進行自適應的調整。
所述計算模塊303,與所述滑動模塊302連接,用於計算屏幕顯示內容的實際滑動距離;所述計算模塊用於通過所述屏幕顯示內容中的控制項位置變化,計算實際滑動距離。由於屏幕顯示內容滑動會有加速度,導致實際滑動距離會略大於所述預設距離。為了使最終獲得的長截屏的圖片內容完整,沒有遺漏或重疊,需要對實際滑動距離進行準確計算。在本發明的具體實施方式中,所述計算模塊303可以通過所述屏幕顯示內容中的控制項位置變化,準確計算實際滑動距離。具體的,在本發明的一個具體實施方式中,所述計算模塊303通過獲取其中一控制項的初始位置以及滑動後位置,兩者之間的差距即為屏幕顯示內容實際滑動距離。
判斷模塊304,與所述計算模塊303連接,用於判斷屏幕顯示內容是否大於或等於所述預設距離。將所述實際滑動距離與預設距離進行比較,如果實際滑動距離大於預設距離,則表明瀏覽內容還未完全顯示,後續還可以繼續進行滑動;如果實際滑動距離小於預設距離,則表明,瀏覽內容已經完全顯示,後續無法再繼續進行滑動。
拼接模塊305,與所述判斷模塊304和截屏模塊301連接,當實際滑動距離大於或等於所述預設距離時,所述拼接模塊用於根據實際滑動距離將第二圖片拼接到第一圖片上,形成新的第一圖片。所述拼接模塊305可以將第二圖片覆蓋第一圖片中的重複部分,實現第一圖片與第二圖片的拼接,形成新的第一圖片。具體的,在本發明的一個具體實施方式中,所述拼接模塊305截取第二圖片自底部向上實際滑動距離再加一固定高度的部分覆蓋第一圖片自底部向上一固定高度的部分,將第二圖片與第一圖片實現拼接。由於屏幕底部可能具有部分高度的顯示內容在滑動過程中固定不變,截取第二圖片中自底部向上實際滑動距離再加一固定高度的部分,對第一圖片自底部向上一固定高度的部分進行覆蓋,可以將第一圖片中的固定部分覆蓋掉,避免重複。
在本發明的一個具體實施方式中,所述固定高度可以為屏幕高度的1/8~1/4;在本發明的另一具體實施方式中,所述屏幕內容底部有一保留高度的內容在滑動過程中保留不變,則所述固定高度等於所述保留高度。
當實際滑動距離小於所述預設距離時,所述拼接模塊305用於根據實際滑動距離將第二圖片拼接到第一圖片上,形成最終截屏圖片。
所述拼接模塊305包括:截取單元,用於截取第二圖片自底部向上實際滑動距離再加一固定高度的部分;覆蓋單元,用於將截取單元截取的部分第二圖片覆蓋第一圖片自底部向上一固定高度的部分,將第二圖片與第一圖片實現拼接。在本發明的一個具體實施方式中,所述固定高度為屏幕高度的1/8~1/4;若所述屏幕內容底部有一保留高度的內容在滑動過程中保留不變,則所述固定高度等於所述保留高度。
在本發明的一個具體實施方式中,在起始階段,通過截屏模塊301截取並保存當前屏幕顯示內容為第一圖片;然後通過滑動模塊302將屏幕顯示內容滑動一預設距離,以顯示更多後續內容;在通過截屏模塊301截取滑動後的屏幕顯示內容,保存為第二圖片;隨後通過計算模塊303計算實際滑動距離,並通過判斷模塊304判斷該實際滑動距離是否大於或等於所述預設距離,若是,則所述拼接模塊305通過實際滑動距離,將第二圖片與第一圖片拼接,形成新的第一圖片;所述滑動模塊302繼續將屏幕顯示內容滑動一預設距離,並通過截屏模塊301截屏,形成新的第二圖片;若滑動距離大於預設距離,則通過拼接模塊305將新的第二圖片拼接至新的第一圖片,形成新的第一圖片之後,繼續滑動屏幕顯示內容,以及進行截圖和拼接,直至實際滑動距離小於所述預設距離時,所述拼接模塊305用於根據實際滑動距離將第二圖片拼接到第一圖片上,形成最終截屏圖片。
所述移動終端能夠自動對屏幕顯示內容進行滑動,並通過計算滑動距離進行圖片拼接,使得最終獲得的長截屏圖片精準、無縫銜接,能夠直接獲得長截屏圖片。
以上所述僅是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人員,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。