欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

提高圖像區(qū)域刷新速度的方法及裝置的制作方法

文檔序號(hào):6336743閱讀:166來源:國(guó)知局
專利名稱:提高圖像區(qū)域刷新速度的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及圖像顯示技術(shù)領(lǐng)域,特別涉及一種提高圖像區(qū)域刷新速度的方法及裝置。
背景技術(shù)
隨著計(jì)算機(jī)應(yīng)用的普及,計(jì)算機(jī)繪圖及圖像處理越來越普遍,涉及到美術(shù)、設(shè)計(jì)、 圖像處理,圖形填充等多個(gè)方面,而對(duì)圖像的刷新處理是圖像處理中的一個(gè)重要環(huán)節(jié),如對(duì) 某部分區(qū)域進(jìn)行圖像處理變化顏色、顏色填充、蛻化、灰度變換等。隨著處理的圖片越來越 大,處理的效率和速度要求越來越高?,F(xiàn)有的圖像處理技術(shù),常直接采用⑶I (Graphics Device Interface,圖形設(shè)備接 口 )中Bitmap (位像)的GetPixel函數(shù)和SetPixel函數(shù)方法,這兩種函數(shù)方法都是 直接操作顯卡,消耗很多的CPU資源,導(dǎo)致獲取速度比較慢,如果對(duì)比較大的圖片及高分辨 率的屏幕進(jìn)行像素處理,速度會(huì)更加慢。經(jīng)過測(cè)試程序的測(cè)試,如果處理一個(gè)USOxlOM大 小的圖片的所有像素需要的時(shí)間大概是4000ms。另外申請(qǐng)?zhí)枮?00910214152.0的申請(qǐng)文件中公開了一種圖像像素處理方法,該 方法通過拷貝屏幕到內(nèi)存,在內(nèi)存中進(jìn)行修改像素值后再輸出到屏幕上。在同等環(huán)境下,采 用與上述相同的測(cè)試程序進(jìn)行測(cè)試,處理一個(gè)1280X10M大小的圖片或屏幕的所有像素需 要的時(shí)間大概是300ms,比第一個(gè)方法速度提高了 13倍左右,節(jié)省了計(jì)算時(shí)間。但是這種方 法需要不停的拷貝屏幕,隨著屏幕分辨率的提高,拷貝速度會(huì)有所下降,特別是在快速處理 數(shù)據(jù)時(shí),CPU會(huì)被占用到接近100%的比例,圖像的處理速度明顯變慢。

發(fā)明內(nèi)容
為解決上述問題,本發(fā)明提供一種提高圖像區(qū)域刷新速度的方法及裝置,能夠提 高圖像刷新處理的速度和效率,解決在處理大圖片及高分辨率屏幕時(shí)需要長(zhǎng)時(shí)間等待的問 題。本發(fā)明的提高圖像區(qū)域刷新速度的方法,包括以下步驟步驟Si,根據(jù)圖像或屏幕大小創(chuàng)建一個(gè)可讀寫的位圖內(nèi)存和一個(gè)支持透明度處理 的Bitmap對(duì)象;步驟S2,循環(huán)掃描查找圖像或屏幕中需處理區(qū)域內(nèi)的所有像素,獲取不同位置像 素的像素值和/或修改像素的像素值,并將處理后的數(shù)據(jù)保存到位圖內(nèi)存中;步驟S3,將位圖內(nèi)存中的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后保存到Bitmap對(duì)象的對(duì)應(yīng)位置;步驟S4,將Bitmap對(duì)象中的數(shù)據(jù)疊加到圖像或屏幕的對(duì)應(yīng)位置上,完成區(qū)域的刷 新處理。本發(fā)明還提供一種提高圖像區(qū)域刷新速度的裝置,包括像素處理模塊、轉(zhuǎn)換模塊 以及Bitmap模塊;像素處理模塊、轉(zhuǎn)換模塊以及Bitmap模塊依次連接;像素處理模塊的功能是循環(huán)掃描查找存儲(chǔ)模塊中的圖像或屏幕中需處理區(qū)域內(nèi)的所有像素,獲取不同位置像素的像素值和/或修改像素的像素值,并將處理后的數(shù)據(jù)發(fā) 送給轉(zhuǎn)換模塊;轉(zhuǎn)換模塊的功能是接收到像素處理模塊中的數(shù)據(jù)后進(jìn)行格式轉(zhuǎn)換,并將轉(zhuǎn)換后的 數(shù)據(jù)發(fā)送給Bitmap模塊;Bitmap模塊的功能是根據(jù)圖像或屏幕的大小創(chuàng)建同樣大小的支持透明度處理的 Bitmap對(duì)象;以及接收轉(zhuǎn)換模塊中的數(shù)據(jù),保存到Bitmap對(duì)象的對(duì)應(yīng)位置,并將該對(duì)應(yīng)位 置的數(shù)據(jù)進(jìn)行疊加輸出到需要處理的圖像或屏幕上,完成區(qū)域的刷新處理。從以上的方案可以看出,本發(fā)明的提高圖像區(qū)域刷新速度的方法及裝置,不需要 頻繁的切換顯卡,也不需要每次都重新拷貝屏幕,在對(duì)大圖片及高分辨率屏幕進(jìn)行處理時(shí) 效果尤其明顯,不需要長(zhǎng)時(shí)間的等待。而且在進(jìn)行快速處理數(shù)據(jù)時(shí)CPU資源的占用比例也 明顯降低。


圖1為本發(fā)明提高圖像區(qū)域刷新速度的方法流程圖;圖2為本發(fā)明提高圖像區(qū)域刷新速度的裝置的結(jié)構(gòu)示意圖;圖3為本發(fā)明具體實(shí)施例二的流程圖;圖4為處理前的圖像或屏幕區(qū)域;圖5為處理后的圖像或屏幕區(qū)域。
具體實(shí)施例方式本發(fā)明提供了一種提高圖像區(qū)域刷新速度的方法及裝置,能解決現(xiàn)有技術(shù)中在處 理大圖片及高分辨率屏幕時(shí)需要長(zhǎng)時(shí)間等待的問題。下面結(jié)合具體的實(shí)施例詳細(xì)描述本發(fā) 明的技術(shù)方案。實(shí)施例一如圖1所示,本發(fā)明提高圖像區(qū)域刷新速度的方法,具體包括以下步驟步驟Si,根據(jù)圖像或屏幕大小創(chuàng)建一個(gè)可讀寫的位圖內(nèi)存和一個(gè)支持透明度處理 的Bitmap對(duì)象。這里所創(chuàng)建的位圖內(nèi)存和Bitmap對(duì)象的大小都與需要處理的圖像或屏幕 的大小相同。本發(fā)明不拷貝屏幕或圖像到內(nèi)存,在不知道以前像素值的情況下直接修改像素 值,而創(chuàng)建的這個(gè)位圖內(nèi)存就是用來存儲(chǔ)直接修改后的像素值數(shù)據(jù)的。另外創(chuàng)建的Bitmap 對(duì)象支持透明度處理,只在需要處理的區(qū)域有圖像顯示,其它地方則進(jìn)行透明處理不顯示 圖像,這樣在后續(xù)的步驟S4中與原始圖像或屏幕進(jìn)行疊加時(shí)就可避免其它區(qū)域的重復(fù)疊 加,節(jié)省系統(tǒng)資源。步驟S2,循環(huán)掃描查找所述圖像或屏幕中需處理區(qū)域內(nèi)的所有像素,獲取不同位 置像素的像素值和/或修改像素的像素值,并將處理后的數(shù)據(jù)保存到位圖內(nèi)存中。進(jìn)入?yún)^(qū)域像素處理階段,假設(shè)需要處理的區(qū)域?yàn)橐痪匦?xl,yl,x2,y2),如圖4所 示,(xl,yl)為該矩形左上角的頂點(diǎn)坐標(biāo),(x2,y2)為矩形右下角的頂點(diǎn)坐標(biāo),該矩形用自 左上到右下的斜線標(biāo)注以作識(shí)別,表示這是處理前的圖像或屏幕區(qū)域。該步驟具體可包括 以下步驟
4
步驟S201,讀取需要處理的區(qū)域中各頂點(diǎn)坐標(biāo),這里分別為(xl,yl)、(x2,y2),設(shè) 正在處理的像素坐標(biāo)為(X,y),起始點(diǎn)χ = xl,y = yl ;系統(tǒng)計(jì)算該落在該頂點(diǎn)坐標(biāo)內(nèi)的其 它像素的坐標(biāo);步驟S202,根據(jù)需處理像素的坐標(biāo)從圖片對(duì)象數(shù)據(jù)的指針中獲取該像素的像素值 和/或者根據(jù)需要修改其像素值,完成該位置像素的處理操作。該過程具體又包括以下步 驟(a)、判斷當(dāng)前像素坐標(biāo)y值是否小于或等于y2,若是則進(jìn)入(b);否則進(jìn)入步驟 S4 ;(b)、判斷當(dāng)前像素坐標(biāo)χ值是否小于或等于x2,若是則進(jìn)入(c);否則y = y+1, 并返回(a);(c)、根據(jù)需處理像素的坐標(biāo),從圖片對(duì)象數(shù)據(jù)的指針中獲取像素值和/或修改其 像素值,如進(jìn)行變換顏色、透明度、灰度變換等操作,完成本位置坐標(biāo)像素的處理操作;(d)、進(jìn)入下一像素的處理,即X = x+1,并返回(b)。步驟S203,判斷本區(qū)域內(nèi)的所有像素是否已完成處理,若是,則完成了本區(qū)域所有 像素的處理操作;否則,循環(huán)查找本區(qū)域內(nèi)下一像素的坐標(biāo),并返回步驟S202。步驟S3,將位圖內(nèi)存中的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后保存到Bitmap對(duì)象的對(duì)應(yīng)位置。由于在Windows的⑶I中,步驟S2中進(jìn)行像素處理后輸出的文件格式為BITMAP 格式,因此還需要進(jìn)行格式轉(zhuǎn)化,將BITMAP格式轉(zhuǎn)化為Bitmap格式,并將轉(zhuǎn)換后的數(shù)據(jù)保 存到Bitmap對(duì)象的對(duì)應(yīng)位置上。作為一個(gè)較好的實(shí)施例,為了避免在將數(shù)據(jù)保存到Bitmap對(duì)象中時(shí)其它對(duì)象訪 問該數(shù)據(jù)造成訪問沖突,可以在進(jìn)入步驟S3之前先鎖定圖像或屏幕中需處理區(qū)域?qū)?yīng)位 置的位圖內(nèi)存塊,但是為了不影響后續(xù)的其它操作,必須在步驟S3之后即當(dāng)數(shù)據(jù)全部都保 存到Bitmap對(duì)象的對(duì)應(yīng)位置中后解鎖該位圖內(nèi)存塊,并清空該位圖內(nèi)存塊中的數(shù)據(jù)以供 下次使用。步驟S4,將Bitmap對(duì)象中的數(shù)據(jù)疊加到圖像或屏幕的對(duì)應(yīng)位置上,完成區(qū)域的刷 新處理。如圖5所示,標(biāo)識(shí)矩形的斜線改為從右上到左下方向,表示該圖已經(jīng)經(jīng)過刷新處 理,為處理后的圖像或屏幕區(qū)域。作為一個(gè)較好的實(shí)施例,本發(fā)明還可以包括步驟S5 判斷是否還需對(duì)圖像或屏幕 的其它區(qū)域進(jìn)行處理,若是,則返回步驟S2 ;否則完成圖像或屏幕的刷新處理。采用與之前相同的測(cè)試程序在同等環(huán)境下進(jìn)行測(cè)試,處理一個(gè)USOxlOM大小的 圖片或屏幕的所有像素需要的時(shí)間大概是80ms,比申請(qǐng)?zhí)枮?00910214152.0的申請(qǐng)文件 所公開的方法的速度提高了 3倍多。而且在快速處理數(shù)據(jù)時(shí)(同等的數(shù)據(jù)),CPU也不會(huì)被 占用到接近100 %,本方法比上述方法CPU的占用比例降低了 60 %左右。通過上述描述可以看出,本發(fā)明的提高圖像區(qū)域刷新速度的方法,不拷貝屏幕或 圖像到內(nèi)存,在不知道以前像素值的情況下直接進(jìn)行修改像素值的操作,在對(duì)大圖片及高 分辨率屏幕進(jìn)行處理時(shí),不需要長(zhǎng)時(shí)間的等待,速度和效率都得到大范圍的提高,而且占用 CPU資源少、處理速度快,尤其在進(jìn)行快速處理數(shù)據(jù)時(shí)CPU的占用比例明顯降低,保障了系 統(tǒng)中其他程序的正常運(yùn)行。實(shí)施例二
本發(fā)明還提供一個(gè)實(shí)施例,描述在Windows操作系統(tǒng)中采用編程語言C++對(duì)屏幕 像素進(jìn)行處理的過程,即完成對(duì)屏幕某區(qū)域的透明變換、灰度變換或修改顏色值等操作后, 將屏幕進(jìn)行刷新顯示。如圖3所示為本實(shí)施例的詳細(xì)流程圖,具體包括以下步驟Si. 1、根據(jù)窗口句柄,采用GetDC函數(shù)獲取屏幕DC(Device Context設(shè)備上下文), 命名為 I^creenDC ;Si. 2、根據(jù)需要處理的屏幕大小,采用CreateDIBSection函數(shù)創(chuàng)建一個(gè)可以直接 讀寫的位片,命名為m_hBitmap ;Si. 3、根據(jù)圖片指針m_hBitmap,通過函數(shù)GetObject獲取圖片的相關(guān)數(shù)據(jù)信息 (具體是指高度和寬度),并寫入結(jié)構(gòu)體BITMAP對(duì)象中,命名為m_Bmphfo ;Si. 4、根據(jù)屏幕的高度和寬度,采用new Bitmap函數(shù)創(chuàng)建一個(gè)同樣大小的支持透 明讀處理的Bitmap對(duì)象,命名為m_pBmpkreen。S2. 1、假設(shè)需要處理的區(qū)域矩形為(xl,yl,x2,y2),其中(xl,yl)為矩形左上角頂 點(diǎn)坐標(biāo),(x2, y2)為矩形右下角頂點(diǎn)坐標(biāo);設(shè)處理的像素坐標(biāo)為(χ,y),起始點(diǎn)為χ = xl,y =yl,如圖4所示;S2. 2、判斷當(dāng)前像素坐標(biāo)y值是否小于或等于y2,若是則進(jìn)入S2. 3 ;否則進(jìn)入 S3. 1 ;32.3、判斷當(dāng)前像素坐標(biāo)1值是否小于或等于口,若是則進(jìn)入52.4;否則7 = 7+1, 并返回S2.2 ;S2. 4、根據(jù)需處理像素的坐標(biāo),從圖片對(duì)象數(shù)據(jù)的指針pBmpstr中獲取像素值和/ 或修改其像素值,如進(jìn)行變換顏色、透明度、灰度變換等操作,完成本位置坐標(biāo)像素的處理 操作;S2. 5、進(jìn)入下一像素的處理,即χ = x+1,并返回S2. 3。S3. 1、根據(jù)需要處理的區(qū)域rect,采用LockBits函數(shù)鎖定m_Bmphfo中對(duì)應(yīng)位置 內(nèi)存塊,并將鎖定的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后保存在m_pBmpkreen對(duì)應(yīng)位置中;S3. 2、采用函數(shù)UnlockBits取消對(duì)處理區(qū)域rect在m_Bmphfo上的鎖定;S3. 3、采用RtlkroMemory函數(shù)清空在m_Bmphfo上對(duì)應(yīng)rect的內(nèi)存數(shù)據(jù),以供 下次使用;S4、根據(jù)處理區(qū)域rect,采用函數(shù)Drawlmage把刷新后的數(shù)據(jù)疊加到屏幕上,處理 完后進(jìn)入步驟S2. 2。實(shí)施例三本發(fā)明還提供一種提高圖像區(qū)域刷新速度的裝置,包括像素處理模塊、轉(zhuǎn)換模塊 以及Bitmap模塊;像素處理模塊、轉(zhuǎn)換模塊以及Bitmap模塊依次連接,如圖2所示。像素處理模塊的功能是循環(huán)掃描查找存儲(chǔ)模塊中的圖像或屏幕中需處理區(qū)域內(nèi) 的所有像素,獲取不同位置像素的像素值和/或修改像素的像素值,并將處理后的數(shù)據(jù)發(fā) 送給轉(zhuǎn)換模塊。上述的具體的像素處理過程與實(shí)施例一相同,這里不再贅述。轉(zhuǎn)換模塊的功能是接收到像素處理模塊中的數(shù)據(jù)后進(jìn)行格式轉(zhuǎn)換,并將轉(zhuǎn)換后的 數(shù)據(jù)發(fā)送給Bitmap模塊。Bitmap模塊的功能是根據(jù)圖像或屏幕的大小創(chuàng)建同樣大小的支持透明度處理的Bitmap對(duì)象;以及接收轉(zhuǎn)換模塊中的數(shù)據(jù),保存到Bitmap對(duì)象的對(duì)應(yīng)位置,并將該對(duì)應(yīng)位 置的數(shù)據(jù)進(jìn)行疊加輸出到需要處理的圖像或屏幕上,完成區(qū)域的刷新處理。本發(fā)明的提高圖像區(qū)域刷新速度的裝置,具有與本發(fā)明的提高圖像區(qū)域刷新速度 的方法同樣的有益效果,這里不再贅述。以上所述的本發(fā)明實(shí)施方式,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明 的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求保護(hù)范 圍之內(nèi)。
權(quán)利要求
1.一種提高圖像區(qū)域刷新速度的方法,其特征在于,包括以下步驟步驟Si,根據(jù)圖像或屏幕大小創(chuàng)建一個(gè)可讀寫的位圖內(nèi)存和一個(gè)支持透明度處理的 Bitmap 對(duì)象;步驟S2,循環(huán)掃描查找所述圖像或屏幕中需處理區(qū)域內(nèi)的所有像素,獲取不同位置像 素的像素值和/或修改像素的像素值,并將處理后的數(shù)據(jù)保存到所述位圖內(nèi)存中;步驟S3,將所述位圖內(nèi)存中的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后保存到所述Bitmap對(duì)象的對(duì)應(yīng)位置;步驟S4,將所述Bitmap對(duì)象中的數(shù)據(jù)疊加到所述圖像或屏幕的對(duì)應(yīng)位置上,完成區(qū)域 的刷新處理。
2.根據(jù)權(quán)利要求1所述的提高圖像區(qū)域刷新速度的方法,其特征在于,還包括步驟S5 判斷是否還需對(duì)圖像或屏幕的其它區(qū)域進(jìn)行處理,若是,則返回步驟S2 ;否則完成圖像或 屏幕的刷新處理。
3.根據(jù)權(quán)利要求2所述的提高圖像區(qū)域刷新速度的方法,其特征在于,步驟S2具體包 括以下步驟步驟S201,讀取需要處理的區(qū)域中各頂點(diǎn)坐標(biāo),并計(jì)算所述區(qū)域內(nèi)其它像素的坐標(biāo);步驟S202,根據(jù)需處理像素的坐標(biāo),從圖片對(duì)象數(shù)據(jù)的指針中獲取該像素的像素值和 /或者修改其像素值,完成該像素的處理操作;步驟S203,判斷本區(qū)域內(nèi)的所有像素是否已完成處理,若是,則完成本區(qū)域像素的處理 操作;否則,循環(huán)查找本區(qū)域內(nèi)下一像素的坐標(biāo),并返回步驟S202。
4.根據(jù)權(quán)利要求2所述的提高圖像區(qū)域刷新速度的方法,其特征在于,步驟S3之前還 包括步驟S301 鎖定所述圖像或屏幕中需處理區(qū)域?qū)?yīng)位置的位圖內(nèi)存塊。
5.根據(jù)權(quán)利要求4所述的提高圖像區(qū)域刷新速度的方法,其特征在于,步驟S3之后還 包括步驟S303 解鎖所述對(duì)應(yīng)位置的位圖內(nèi)存塊,并清空所述位圖內(nèi)存塊中的數(shù)據(jù)。
6.一種提高圖像區(qū)域刷新速度的裝置,其特征在于,包括像素處理模塊、轉(zhuǎn)換模塊以 及Bitmap模塊;所述像素處理模塊、轉(zhuǎn)換模塊以及Bitmap模塊依次連接;所述像素處理模塊用于循環(huán)掃描查找所述存儲(chǔ)模塊中的圖像或屏幕中需處理區(qū)域內(nèi) 的所有像素,獲取不同位置像素的像素值和/或修改像素的像素值,并將處理后的數(shù)據(jù)發(fā) 送給所述轉(zhuǎn)換模塊;所述轉(zhuǎn)換模塊用于接收到所述像素處理模塊中的數(shù)據(jù)后進(jìn)行格式轉(zhuǎn)換,并將轉(zhuǎn)換后的 數(shù)據(jù)發(fā)送給所述Bitmap模塊;所述Bitmap模塊用于根據(jù)圖像或屏幕的大小創(chuàng)建同樣大小的支持透明度處理的 Bitmap對(duì)象;以及接收所述轉(zhuǎn)換模塊中的數(shù)據(jù),保存到所述Bitmap對(duì)象的對(duì)應(yīng)位置,并將 所述對(duì)應(yīng)位置的數(shù)據(jù)進(jìn)行疊加輸出到所述需要處理的圖像或屏幕上,完成區(qū)域的刷新處 理。
全文摘要
本發(fā)明提供一種提高圖像區(qū)域刷新速度的方法及裝置,本發(fā)明的方法具體包括以下步驟根據(jù)圖像或屏幕大小創(chuàng)建一個(gè)可讀寫的位圖內(nèi)存和一個(gè)支持透明度處理的Bitmap對(duì)象;循環(huán)掃描查找需處理區(qū)域內(nèi)的所有像素,獲取不同位置像素的像素值和/或修改像素的像素值,將處理后的數(shù)據(jù)保存到位圖內(nèi)存中;將位圖內(nèi)存中的數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換后保存到Bitmap對(duì)象的對(duì)應(yīng)位置;將Bitmap對(duì)象中的數(shù)據(jù)疊加到圖像或屏幕的對(duì)應(yīng)位置上,完成區(qū)域的刷新處理。本發(fā)明的方法及裝置,占用CPU資源少、處理速度快,在對(duì)大圖片及高分辨率屏幕進(jìn)行處理時(shí),不需要長(zhǎng)時(shí)間的等待,速度和效率都得到大范圍的提高。
文檔編號(hào)G06T1/00GK102073976SQ20101055891
公開日2011年5月25日 申請(qǐng)日期2010年11月25日 優(yōu)先權(quán)日2010年11月25日
發(fā)明者陳先志 申請(qǐng)人:廣東威創(chuàng)視訊科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
民勤县| 高邮市| 江油市| 平乐县| 拜泉县| 元谋县| 衡阳市| 荃湾区| 葫芦岛市| 泸水县| 克拉玛依市| 柯坪县| 宁晋县| 庄河市| 黎城县| 云龙县| 凤阳县| 北川| 公主岭市| 水城县| 招远市| 富平县| 云浮市| 台北市| 屏东市| 安多县| 安达市| 荣成市| 工布江达县| 时尚| 二连浩特市| 华容县| 宜春市| 田东县| 益阳市| 邯郸县| 通山县| 尼玛县| 车致| 台南县| 江孜县|