一種動(dòng)態(tài)圖像顯示的處理方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,更具體的說(shuō),涉及一種動(dòng)態(tài)圖像顯示的處理方法及系統(tǒng)。
【背景技術(shù)】
[0002]在界面開發(fā)過(guò)程中,經(jīng)常會(huì)遇到窗體更新等圖像處理的問(wèn)題。在窗體更新時(shí),如果窗體在響應(yīng)窗體重繪命令WM_PAINT的時(shí)候要進(jìn)行動(dòng)態(tài)圖像處理,那么在窗體重繪時(shí)會(huì)出現(xiàn)由于頻繁刷新而弓I起的閃爍現(xiàn)象。
[0003]目前主要通過(guò)采用雙緩沖繪圖技術(shù)解決繪圖過(guò)程中的閃爍現(xiàn)象,雙緩沖技術(shù)是在每次刷新界面時(shí),在創(chuàng)建圖形內(nèi)存對(duì)象的同時(shí)進(jìn)行圖像繪制。這種方法雖然改善了圖像的顯示效果,使得顯示圖像不再閃爍,但是由于接收動(dòng)態(tài)數(shù)據(jù)及進(jìn)行動(dòng)態(tài)數(shù)據(jù)處理的過(guò)程均需要耗費(fèi)時(shí)間,因此導(dǎo)致圖像顯示的數(shù)據(jù)與實(shí)際接收的數(shù)據(jù)不同步,使圖像顯示延遲,從而影響用戶對(duì)被監(jiān)控對(duì)象的動(dòng)態(tài)數(shù)據(jù)誤判,同時(shí)影響該界面的動(dòng)態(tài)圖像顯示效果。
[0004]綜上,如何提供一種動(dòng)態(tài)圖像顯示的處理方法及系統(tǒng),以同時(shí)解決圖像閃爍和圖像顯示延遲的問(wèn)題是本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問(wèn)題。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供一種動(dòng)態(tài)圖像顯示的處理方法及系統(tǒng),以解決在顯示動(dòng)態(tài)圖像時(shí)出現(xiàn)的圖像閃爍和圖像顯示延遲的問(wèn)題。
[0006]—種動(dòng)態(tài)圖像顯示的處理方法,包括:
[0007]通過(guò)預(yù)先建立的第一線程接收監(jiān)控裝置上傳的被監(jiān)控對(duì)象的動(dòng)態(tài)數(shù)據(jù),并將所述動(dòng)態(tài)數(shù)據(jù)緩存于緩存區(qū);
[0008]通過(guò)預(yù)先建立的第二線程對(duì)所述緩存區(qū)內(nèi)的所述動(dòng)態(tài)數(shù)據(jù)進(jìn)行處理,將所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換成界面顯示所需的數(shù)據(jù)類型格式;
[0009]創(chuàng)建窗體對(duì)象,并同步創(chuàng)建與窗體顯示區(qū)域同大小的圖形內(nèi)存對(duì)象;
[0010]在所述第二線程完成對(duì)所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換后,利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),對(duì)所述圖形內(nèi)存對(duì)象進(jìn)行重新繪制;
[0011]當(dāng)檢測(cè)到所述窗體顯示區(qū)域有更新事件時(shí),阻塞所述圖形內(nèi)存對(duì)象的重繪操作,并將所述圖形內(nèi)存對(duì)象直接復(fù)制到所述窗體顯示區(qū)域進(jìn)行動(dòng)態(tài)圖像的顯示。
[0012]優(yōu)選的,所述創(chuàng)建窗體對(duì)象,并同步創(chuàng)建與顯示區(qū)域同大小的圖形內(nèi)存對(duì)象的過(guò)程包括:
[0013]創(chuàng)建窗體對(duì)象,并同步創(chuàng)建與顯示區(qū)域同大小的圖像內(nèi)存對(duì)象;
[0014]用預(yù)設(shè)顯示區(qū)域背景色對(duì)所述圖像內(nèi)存對(duì)象進(jìn)行填充,得到背景色填充后的圖像內(nèi)存對(duì)象。
[0015]優(yōu)選的,所述在所述第二線程完成對(duì)所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換后,利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),對(duì)所述圖形內(nèi)存對(duì)象進(jìn)行重新繪制的過(guò)程包括:
[0016]當(dāng)所述窗體顯示區(qū)域的尺寸發(fā)生改變時(shí),在所述第二線程完成對(duì)所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換后,利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),對(duì)尺寸改變后的圖形內(nèi)存對(duì)象進(jìn)行重新繪制。
[0017]優(yōu)選的,所述在所述第二線程完成對(duì)所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換后,利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),對(duì)所述圖形內(nèi)存對(duì)象進(jìn)行重新繪制的過(guò)程包括:
[0018]當(dāng)所述圖形內(nèi)存對(duì)象的內(nèi)容發(fā)生改變時(shí),在所述第二線程完成對(duì)所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換后,利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),對(duì)所述圖形內(nèi)存對(duì)象進(jìn)行重新繪制。
[0019]—種動(dòng)態(tài)圖像顯示的處理系統(tǒng),包括:
[0020]接收單元,用于通過(guò)預(yù)先建立的第一線程接收監(jiān)控裝置上傳的被監(jiān)控對(duì)象的動(dòng)態(tài)數(shù)據(jù),并將所述動(dòng)態(tài)數(shù)據(jù)緩存于緩存區(qū);
[0021]處理單元,用于通過(guò)預(yù)先建立的第二線程對(duì)所述緩存區(qū)內(nèi)的所述動(dòng)態(tài)數(shù)據(jù)進(jìn)行處理,將所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換成界面顯示所需的數(shù)據(jù)類型格式;
[0022]創(chuàng)建單元,用于創(chuàng)建窗體對(duì)象,并同步創(chuàng)建與窗體顯示區(qū)域同大小的圖形內(nèi)存對(duì)象;
[0023]重新繪制單元,用于在所述第二線程完成對(duì)所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換后,利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),對(duì)所述圖形內(nèi)存對(duì)象進(jìn)行重新繪制;
[0024]顯示單元,用于當(dāng)檢測(cè)到所述窗體顯示區(qū)域有更新事件時(shí),阻塞所述圖形內(nèi)存對(duì)象的重繪操作,并將所述圖形內(nèi)存對(duì)象直接復(fù)制到所述窗體顯示區(qū)域進(jìn)行動(dòng)態(tài)圖像的顯不ο
[0025]優(yōu)選的,所述創(chuàng)建單元包括:
[0026]創(chuàng)建子單元,用于創(chuàng)建窗體對(duì)象,并同步創(chuàng)建與顯示區(qū)域同大小的圖像內(nèi)存對(duì)象;
[0027]填充子單元,用于用預(yù)設(shè)顯示區(qū)域背景色對(duì)所述圖像內(nèi)存對(duì)象進(jìn)行填充,得到背景色填充后的圖像內(nèi)存對(duì)象。
[0028]優(yōu)選的,所述重新繪制單元包括:
[0029]第一重繪子單元,用于當(dāng)所述窗體顯示區(qū)域的尺寸發(fā)生改變時(shí),在所述第二線程完成對(duì)所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換后,利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),對(duì)尺寸改變后的圖形內(nèi)存對(duì)象進(jìn)行重新繪制。
[0030]優(yōu)選的,所述重新繪制單元包括:
[0031]第二重繪子單元,用于當(dāng)所述圖形內(nèi)存對(duì)象的內(nèi)容發(fā)生改變時(shí),在所述第二線程完成對(duì)所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換后,利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),對(duì)所述圖形內(nèi)存對(duì)象進(jìn)行重新繪制。
[0032]從上述的技術(shù)方案可以看出,本發(fā)明提供了一種動(dòng)態(tài)圖像顯示的處理方法及系統(tǒng),通過(guò)預(yù)先建立的第一線程接收監(jiān)控裝置上傳的動(dòng)態(tài)數(shù)據(jù)并進(jìn)行緩存,通過(guò)預(yù)先建立的第二線程對(duì)緩存區(qū)的動(dòng)態(tài)數(shù)據(jù)進(jìn)行處理,得到格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),然后利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù)對(duì)創(chuàng)建的圖形內(nèi)存對(duì)象進(jìn)行重新繪制,在阻塞圖形內(nèi)存對(duì)象的重繪操作后,將該圖形內(nèi)存對(duì)象直接復(fù)制到窗體顯示區(qū)域?qū)崿F(xiàn)動(dòng)態(tài)圖像的顯示??梢钥闯?,本發(fā)明采用多線程編程技術(shù)將動(dòng)態(tài)數(shù)據(jù)的接收過(guò)程與處理過(guò)程進(jìn)行了分離,由第一線程負(fù)責(zé)動(dòng)態(tài)數(shù)據(jù)的接收,第二線程負(fù)責(zé)動(dòng)態(tài)數(shù)據(jù)的處理,從而使動(dòng)態(tài)數(shù)據(jù)的接收和處理可以同時(shí)進(jìn)行。因此,可以有效避免因數(shù)據(jù)傳輸延遲而導(dǎo)致的圖像閃爍和圖像顯示延遲的問(wèn)題,實(shí)現(xiàn)了圖像顯示數(shù)據(jù)與實(shí)際接收數(shù)據(jù)的同步,從而解決了現(xiàn)有技術(shù)中的難題。
【附圖說(shuō)明】
[0033]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0034]圖1為本發(fā)明實(shí)施例公開的一種動(dòng)態(tài)圖像顯示的處理方法流程圖;
[0035]圖2為本發(fā)明實(shí)施例公開的一種動(dòng)態(tài)圖像顯示的處理系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0036]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0037]本發(fā)明實(shí)施例公開了一種動(dòng)態(tài)圖像顯示的處理方法及系統(tǒng),以解決在顯示動(dòng)態(tài)圖像時(shí)出現(xiàn)的圖像閃爍和圖像顯示延遲的問(wèn)題。
[0038]參見圖1,本發(fā)明實(shí)施例提供的一種動(dòng)態(tài)圖像顯示的處理方法流程圖,包括步驟:
[0039]步驟S11、通過(guò)預(yù)先建立的第一線程接收監(jiān)控裝置上傳的被監(jiān)控對(duì)象的動(dòng)態(tài)數(shù)據(jù),并將所述動(dòng)態(tài)數(shù)據(jù)緩存于緩存區(qū);
[0040]其中,被監(jiān)控對(duì)象的動(dòng)態(tài)數(shù)據(jù)具體為被監(jiān)控對(duì)象運(yùn)行的相關(guān)數(shù)據(jù)參數(shù)。
[0041]步驟S12、通過(guò)預(yù)先建立的第二線程對(duì)所述緩存區(qū)內(nèi)的所述動(dòng)態(tài)數(shù)據(jù)進(jìn)行處理,將所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換成界面顯示所需的數(shù)據(jù)類型格式;
[0042]需要說(shuō)明的是,第一線程和第二線程均為線程池預(yù)先建立的工作線程。
[0043]步驟S13、創(chuàng)建窗體對(duì)象,并同步創(chuàng)建與窗體顯示區(qū)域同大小的圖形內(nèi)存對(duì)象;
[0044]步驟S14、在所述第二線程完成對(duì)所述動(dòng)態(tài)數(shù)據(jù)的格式轉(zhuǎn)換后,利用格式轉(zhuǎn)換后的動(dòng)態(tài)數(shù)據(jù),對(duì)所述圖形內(nèi)存對(duì)象進(jìn)行重新繪制;
[0045]步驟S15、當(dāng)檢測(cè)到所述窗體顯示區(qū)域有更新事件時(shí),阻塞所述圖形內(nèi)存對(duì)象的重繪操作,并將所述圖形內(nèi)存對(duì)象直接復(fù)制到所述窗體顯示區(qū)域進(jìn)行動(dòng)態(tài)圖像的顯示。
[0046]需要說(shuō)明的是,本實(shí)施例中,對(duì)上傳的動(dòng)態(tài)數(shù)據(jù)進(jìn)行接收的過(guò)程由第一線程執(zhí)行,對(duì)動(dòng)態(tài)數(shù)據(jù)進(jìn)行處理的過(guò)程由第二線程執(zhí)行,這種將動(dòng)態(tài)數(shù)據(jù)的接收過(guò)程和處理過(guò)程分離的技術(shù)為多線程編程技術(shù),通過(guò)多線程編程技術(shù)可以實(shí)現(xiàn)對(duì)動(dòng)態(tài)數(shù)據(jù)的并行處理。
[0047]綜上可以看出,本發(fā)明采用多線程編程技術(shù)將動(dòng)態(tài)數(shù)據(jù)的接收過(guò)程和處理過(guò)程進(jìn)行了分離,由第一線程負(fù)責(zé)動(dòng)態(tài)數(shù)據(jù)的接收,第二線程負(fù)責(zé)動(dòng)態(tài)數(shù)據(jù)的處理,從而使動(dòng)態(tài)數(shù)據(jù)的接收和處理可以同時(shí)進(jìn)行。因此,可以有效避免因數(shù)據(jù)傳輸延遲而導(dǎo)致的圖像閃爍和圖像顯示延遲的問(wèn)題,實(shí)現(xiàn)了圖像顯示數(shù)據(jù)與實(shí)際接收數(shù)據(jù)的同步,從而解決了現(xiàn)有技術(shù)中的難題。
[0048]本發(fā)明提供的動(dòng)態(tài)圖像顯示的處理方法可以廣泛應(yīng)用于需要對(duì)被監(jiān)控對(duì)象進(jìn)行動(dòng)態(tài)監(jiān)控,并將其動(dòng)態(tài)數(shù)據(jù)進(jìn)行可視化顯示的場(chǎng)合,具有良好的用戶體驗(yàn)效果。
[0049]同時(shí),本發(fā)明可以實(shí)現(xiàn)對(duì)被監(jiān)控對(duì)象的運(yùn)行狀態(tài)曲線進(jìn)行實(shí)時(shí)可視化監(jiān)控,方便用戶及時(shí)了解被監(jiān)控對(duì)象的實(shí)時(shí)狀態(tài)信息及故障信息等。
[0050]需要說(shuō)明的是,本發(fā)明提供的動(dòng)態(tài)圖像顯示的處理方法采用的語(yǔ)言為C#語(yǔ)言。
[0051]可以理解的是,為使圖像內(nèi)存對(duì)象顯示的內(nèi)容更加清晰,可以用顯示區(qū)域背景色對(duì)圖像內(nèi)存對(duì)象進(jìn)行填充。
[0052]因此,上述實(shí)施例中的步驟S13可以包括:
[0053]創(chuàng)建窗體對(duì)象,并同步創(chuàng)建與窗體顯示區(qū)域同大小的圖形內(nèi)存對(duì)象;
[0054]用預(yù)設(shè)顯示區(qū)域背景色對(duì)所述圖像內(nèi)存對(duì)象進(jìn)行填充,得到背景色填充后的圖像內(nèi)存對(duì)象。
[0055]其中預(yù)設(shè)顯示區(qū)域背景色具體依據(jù)實(shí)際需要而定,例如,預(yù)設(shè)顯示區(qū)域背景色為默認(rèn)色,當(dāng)然也可以為其它顏色,本發(fā)明在此不做限定。
[0056]本領(lǐng)域技術(shù)人員可以理解的是,繪制完成的圖像內(nèi)存對(duì)象并不是固定不變的,當(dāng)窗體顯示區(qū)域的尺寸或圖形內(nèi)存對(duì)象的內(nèi)容發(fā)生改變時(shí),圖像內(nèi)存對(duì)象也