CN102073976A - 提高图像区域刷新速度的方法及装置 - Google Patents
提高图像区域刷新速度的方法及装置 Download PDFInfo
- Publication number
- CN102073976A CN102073976A CN 201010558913 CN201010558913A CN102073976A CN 102073976 A CN102073976 A CN 102073976A CN 201010558913 CN201010558913 CN 201010558913 CN 201010558913 A CN201010558913 A CN 201010558913A CN 102073976 A CN102073976 A CN 102073976A
- Authority
- CN
- China
- Prior art keywords
- image
- bitmap
- pixel
- screen
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明提供一种提高图像区域刷新速度的方法及装置,本发明的方法具体包括以下步骤:根据图像或屏幕大小创建一个可读写的位图内存和一个支持透明度处理的Bitmap对象;循环扫描查找需处理区域内的所有像素,获取不同位置像素的像素值和/或修改像素的像素值,将处理后的数据保存到位图内存中;将位图内存中的数据进行格式转换后保存到Bitmap对象的对应位置;将Bitmap对象中的数据叠加到图像或屏幕的对应位置上,完成区域的刷新处理。本发明的方法及装置,占用CPU资源少、处理速度快,在对大图片及高分辨率屏幕进行处理时,不需要长时间的等待,速度和效率都得到大范围的提高。
Description
技术领域
本发明涉及图像显示技术领域,特别涉及一种提高图像区域刷新速度的方法及装置。
背景技术
随着计算机应用的普及,计算机绘图及图像处理越来越普遍,涉及到美术、设计、图像处理,图形填充等多个方面,而对图像的刷新处理是图像处理中的一个重要环节,如对某部分区域进行图像处理:变化颜色、颜色填充、蜕化、灰度变换等。随着处理的图片越来越大,处理的效率和速度要求越来越高。
现有的图像处理技术,常直接采用GDI(Graphics Device Interface,图形设备接口)中Bitmap(位图图像)的GetPixel函数和SetPixel函数方法,这两种函数方法都是直接操作显卡,消耗很多的CPU资源,导致获取速度比较慢,如果对比较大的图片及高分辨率的屏幕进行像素处理,速度会更加慢。经过测试程序的测试,如果处理一个1280x1024大小的图片的所有像素需要的时间大概是4000ms。
另外申请号为200910214152.0的申请文件中公开了一种图像像素处理方法,该方法通过拷贝屏幕到内存,在内存中进行修改像素值后再输出到屏幕上。在同等环境下,采用与上述相同的测试程序进行测试,处理一个1280x1024大小的图片或屏幕的所有像素需要的时间大概是300ms,比第一个方法速度提高了13倍左右,节省了计算时间。但是这种方法需要不停的拷贝屏幕,随着屏幕分辨率的提高,拷贝速度会有所下降,特别是在快速处理数据时,CPU会被占用到接近100%的比例,图像的处理速度明显变慢。
发明内容
为解决上述问题,本发明提供一种提高图像区域刷新速度的方法及装置,能够提高图像刷新处理的速度和效率,解决在处理大图片及高分辨率屏幕时需要长时间等待的问题。
本发明的提高图像区域刷新速度的方法,包括以下步骤:
步骤S1,根据图像或屏幕大小创建一个可读写的位图内存和一个支持透明度处理的Bitmap对象;
步骤S2,循环扫描查找图像或屏幕中需处理区域内的所有像素,获取不同位置像素的像素值和/或修改像素的像素值,并将处理后的数据保存到位图内存中;
步骤S3,将位图内存中的数据进行格式转换后保存到Bitmap对象的对应位置;
步骤S4,将Bitmap对象中的数据叠加到图像或屏幕的对应位置上,完成区域的刷新处理。
本发明还提供一种提高图像区域刷新速度的装置,包括:像素处理模块、转换模块以及Bitmap模块;像素处理模块、转换模块以及Bitmap模块依次连接;
像素处理模块的功能是循环扫描查找存储模块中的图像或屏幕中需处理区域内的所有像素,获取不同位置像素的像素值和/或修改像素的像素值,并将处理后的数据发送给转换模块;
转换模块的功能是接收到像素处理模块中的数据后进行格式转换,并将转换后的数据发送给Bitmap模块;
Bitmap模块的功能是根据图像或屏幕的大小创建同样大小的支持透明度处理的Bitmap对象;以及接收转换模块中的数据,保存到Bitmap对象的对应位置,并将该对应位置的数据进行叠加输出到需要处理的图像或屏幕上,完成区域的刷新处理。
从以上的方案可以看出,本发明的提高图像区域刷新速度的方法及装置,不需要频繁的切换显卡,也不需要每次都重新拷贝屏幕,在对大图片及高分辨率屏幕进行处理时效果尤其明显,不需要长时间的等待。而且在进行快速处理数据时CPU资源的占用比例也明显降低。
附图说明
图1为本发明提高图像区域刷新速度的方法流程图;
图2为本发明提高图像区域刷新速度的装置的结构示意图;
图3为本发明具体实施例二的流程图;
图4为处理前的图像或屏幕区域;
图5为处理后的图像或屏幕区域。
具体实施方式
本发明提供了一种提高图像区域刷新速度的方法及装置,能解决现有技术中在处理大图片及高分辨率屏幕时需要长时间等待的问题。下面结合具体的实施例详细描述本发明的技术方案。
实施例一
如图1所示,本发明提高图像区域刷新速度的方法,具体包括以下步骤:
步骤S1,根据图像或屏幕大小创建一个可读写的位图内存和一个支持透明度处理的Bitmap对象。这里所创建的位图内存和Bitmap对象的大小都与需要处理的图像或屏幕的大小相同。
本发明不拷贝屏幕或图像到内存,在不知道以前像素值的情况下直接修改像素值,而创建的这个位图内存就是用来存储直接修改后的像素值数据的。另外创建的Bitmap对象支持透明度处理,只在需要处理的区域有图像显示,其它地方则进行透明处理不显示图像,这样在后续的步骤S4中与原始图像或屏幕进行叠加时就可避免其它区域的重复叠加,节省系统资源。
步骤S2,循环扫描查找所述图像或屏幕中需处理区域内的所有像素,获取不同位置像素的像素值和/或修改像素的像素值,并将处理后的数据保存到位图内存中。
进入区域像素处理阶段,假设需要处理的区域为一矩形(x1,y1,x2,y2),如图4所示,(x1,y1)为该矩形左上角的顶点坐标,(x2,y2)为矩形右下角的顶点坐标,该矩形用自左上到右下的斜线标注以作识别,表示这是处理前的图像或屏幕区域。该步骤具体可包括以下步骤:
步骤S201,读取需要处理的区域中各顶点坐标,这里分别为(x1,y1)、(x2,y2),设正在处理的像素坐标为(x,y),起始点x=x1,y=y1;系统计算该落在该顶点坐标内的其它像素的坐标;
步骤S202,根据需处理像素的坐标从图片对象数据的指针中获取该像素的像素值和/或者根据需要修改其像素值,完成该位置像素的处理操作。该过程具体又包括以下步骤:
(a)、判断当前像素坐标y值是否小于或等于y2,若是则进入(b);否则进入步骤S4;
(b)、判断当前像素坐标x值是否小于或等于x2,若是则进入(c);否则y=y+1,并返回(a);
(c)、根据需处理像素的坐标,从图片对象数据的指针中获取像素值和/或修改其像素值,如进行变换颜色、透明度、灰度变换等操作,完成本位置坐标像素的处理操作;
(d)、进入下一像素的处理,即x=x+1,并返回(b)。
步骤S203,判断本区域内的所有像素是否已完成处理,若是,则完成了本区域所有像素的处理操作;否则,循环查找本区域内下一像素的坐标,并返回步骤S202。
步骤S3,将位图内存中的数据进行格式转换后保存到Bitmap对象的对应位置。
由于在Windows的GDI中,步骤S2中进行像素处理后输出的文件格式为BITMAP格式,因此还需要进行格式转化,将BITMAP格式转化为Bitmap格式,并将转换后的数据保存到Bitmap对象的对应位置上。
作为一个较好的实施例,为了避免在将数据保存到Bitmap对象中时其它对象访问该数据造成访问冲突,可以在进入步骤S3之前先锁定图像或屏幕中需处理区域对应位置的位图内存块,但是为了不影响后续的其它操作,必须在步骤S3之后即当数据全部都保存到Bitmap对象的对应位置中后解锁该位图内存块,并清空该位图内存块中的数据以供下次使用。
步骤S4,将Bitmap对象中的数据叠加到图像或屏幕的对应位置上,完成区域的刷新处理。如图5所示,标识矩形的斜线改为从右上到左下方向,表示该图已经经过刷新处理,为处理后的图像或屏幕区域。
作为一个较好的实施例,本发明还可以包括步骤S5:判断是否还需对图像或屏幕的其它区域进行处理,若是,则返回步骤S2;否则完成图像或屏幕的刷新处理。
采用与之前相同的测试程序在同等环境下进行测试,处理一个1280x1024大小的图片或屏幕的所有像素需要的时间大概是80ms,比申请号为200910214152.0的申请文件所公开的方法的速度提高了3倍多。而且在快速处理数据时(同等的数据),CPU也不会被占用到接近100%,本方法比上述方法CPU的占用比例降低了60%左右。
通过上述描述可以看出,本发明的提高图像区域刷新速度的方法,不拷贝屏幕或图像到内存,在不知道以前像素值的情况下直接进行修改像素值的操作,在对大图片及高分辨率屏幕进行处理时,不需要长时间的等待,速度和效率都得到大范围的提高,而且占用CPU资源少、处理速度快,尤其在进行快速处理数据时CPU的占用比例明显降低,保障了系统中其他程序的正常运行。
实施例二
本发明还提供一个实施例,描述在Windows操作系统中采用编程语言C++对屏幕像素进行处理的过程,即完成对屏幕某区域的透明变换、灰度变换或修改颜色值等操作后,将屏幕进行刷新显示。
如图3所示为本实施例的详细流程图,具体包括以下步骤:
S1.1、根据窗口句柄,采用GetDC函数获取屏幕DC(Device Context设备上下文),命名为hScreenDC;
S1.2、根据需要处理的屏幕大小,采用CreateDIBSection函数创建一个可以直接读写的位图图片,命名为m_hBitmap;
S1.3、根据图片指针m_hBitmap,通过函数GetObject获取图片的相关数据信息(具体是指高度和宽度),并写入结构体BITMAP对象中,命名为m_BmpInfo;
S1.4、根据屏幕的高度和宽度,采用new Bitmap函数创建一个同样大小的支持透明读处理的Bitmap对象,命名为m_pBmpScreen。
S2.1、假设需要处理的区域矩形为(x1,y1,x2,y2),其中(x1,y1)为矩形左上角顶点坐标,(x2,y2)为矩形右下角顶点坐标;设处理的像素坐标为(x,y),起始点为x=x1,y=y1,如图4所示;
S2.2、判断当前像素坐标y值是否小于或等于y2,若是则进入S2.3;否则进入S3.1;
S2.3、判断当前像素坐标x值是否小于或等于x2,若是则进入S2.4;否则y=y+1,并返回S2.2;
S2.4、根据需处理像素的坐标,从图片对象数据的指针pBmpstr中获取像素值和/或修改其像素值,如进行变换颜色、透明度、灰度变换等操作,完成本位置坐标像素的处理操作;
S2.5、进入下一像素的处理,即x=x+1,并返回S2.3。
S3.1、根据需要处理的区域rect,采用LockBits函数锁定m_BmpInfo中对应位置内存块,并将锁定的数据进行格式转换后保存在m_pBmpScreen对应位置中;
S3.2、采用函数UnlockBits取消对处理区域rect在m_BmpInfo上的锁定;
S3.3、采用RtlZeroMemory函数清空在m_BmpInfo上对应rect的内存数据,以供下次使用;
S4、根据处理区域rect,采用函数DrawImage把刷新后的数据叠加到屏幕上,处理完后进入步骤S2.2。
实施例三
本发明还提供一种提高图像区域刷新速度的装置,包括:像素处理模块、转换模块以及Bitmap模块;像素处理模块、转换模块以及Bitmap模块依次连接,如图2所示。
像素处理模块的功能是循环扫描查找存储模块中的图像或屏幕中需处理区域内的所有像素,获取不同位置像素的像素值和/或修改像素的像素值,并将处理后的数据发送给转换模块。上述的具体的像素处理过程与实施例一相同,这里不再赘述。
转换模块的功能是接收到像素处理模块中的数据后进行格式转换,并将转换后的数据发送给Bitmap模块。
Bitmap模块的功能是根据图像或屏幕的大小创建同样大小的支持透明度处理的Bitmap对象;以及接收转换模块中的数据,保存到Bitmap对象的对应位置,并将该对应位置的数据进行叠加输出到需要处理的图像或屏幕上,完成区域的刷新处理。
本发明的提高图像区域刷新速度的装置,具有与本发明的提高图像区域刷新速度的方法同样的有益效果,这里不再赘述。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (6)
1.一种提高图像区域刷新速度的方法,其特征在于,包括以下步骤:
步骤S1,根据图像或屏幕大小创建一个可读写的位图内存和一个支持透明度处理的Bitmap对象;
步骤S2,循环扫描查找所述图像或屏幕中需处理区域内的所有像素,获取不同位置像素的像素值和/或修改像素的像素值,并将处理后的数据保存到所述位图内存中;
步骤S3,将所述位图内存中的数据进行格式转换后保存到所述Bitmap对象的对应位置;
步骤S4,将所述Bitmap对象中的数据叠加到所述图像或屏幕的对应位置上,完成区域的刷新处理。
2.根据权利要求1所述的提高图像区域刷新速度的方法,其特征在于,还包括步骤S5:判断是否还需对图像或屏幕的其它区域进行处理,若是,则返回步骤S2;否则完成图像或屏幕的刷新处理。
3.根据权利要求2所述的提高图像区域刷新速度的方法,其特征在于,步骤S2具体包括以下步骤:
步骤S201,读取需要处理的区域中各顶点坐标,并计算所述区域内其它像素的坐标;
步骤S202,根据需处理像素的坐标,从图片对象数据的指针中获取该像素的像素值和/或者修改其像素值,完成该像素的处理操作;
步骤S203,判断本区域内的所有像素是否已完成处理,若是,则完成本区域像素的处理操作;否则,循环查找本区域内下一像素的坐标,并返回步骤S202。
4.根据权利要求2所述的提高图像区域刷新速度的方法,其特征在于,步骤S3之前还包括步骤S301:锁定所述图像或屏幕中需处理区域对应位置的位图内存块。
5.根据权利要求4所述的提高图像区域刷新速度的方法,其特征在于,步骤S3之后还包括步骤S303:解锁所述对应位置的位图内存块,并清空所述位图内存块中的数据。
6.一种提高图像区域刷新速度的装置,其特征在于,包括:像素处理模块、转换模块以及Bitmap模块;所述像素处理模块、转换模块以及Bitmap模块依次连接;
所述像素处理模块用于循环扫描查找所述存储模块中的图像或屏幕中需处理区域内的所有像素,获取不同位置像素的像素值和/或修改像素的像素值,并将处理后的数据发送给所述转换模块;
所述转换模块用于接收到所述像素处理模块中的数据后进行格式转换,并将转换后的数据发送给所述Bitmap模块;
所述Bitmap模块用于根据图像或屏幕的大小创建同样大小的支持透明度处理的Bitmap对象;以及接收所述转换模块中的数据,保存到所述Bitmap对象的对应位置,并将所述对应位置的数据进行叠加输出到所述需要处理的图像或屏幕上,完成区域的刷新处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010558913 CN102073976A (zh) | 2010-11-25 | 2010-11-25 | 提高图像区域刷新速度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010558913 CN102073976A (zh) | 2010-11-25 | 2010-11-25 | 提高图像区域刷新速度的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102073976A true CN102073976A (zh) | 2011-05-25 |
Family
ID=44032507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010558913 Pending CN102073976A (zh) | 2010-11-25 | 2010-11-25 | 提高图像区域刷新速度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102073976A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955680A (zh) * | 2011-08-25 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 写屏方法及具写屏功能的移动终端 |
CN103390090A (zh) * | 2012-05-07 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 图像处理的方法和装置 |
EP2575351A3 (en) * | 2011-10-01 | 2014-01-08 | Samsung Electronics Co., Ltd | Method and apparatus of generating a multi-format template image from a single format template image |
CN105959601A (zh) * | 2016-05-11 | 2016-09-21 | 四川友熙环保科技有限责任公司 | 一种空气质量检测系统的空气质量显示画面的刷新方法 |
CN102955680B (zh) * | 2011-08-25 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 写屏方法及具写屏功能的移动终端 |
CN106875884A (zh) * | 2016-12-30 | 2017-06-20 | 歌尔科技有限公司 | 一种绘制单色屏幕的方法和装置及一种电子设备 |
CN107656108A (zh) * | 2017-11-09 | 2018-02-02 | 光科技股份有限公司 | 适用于电力计量的rcm快显方法及装置 |
CN111787355A (zh) * | 2020-06-29 | 2020-10-16 | 西安万像电子科技有限公司 | 远程图像更新的方法及装置 |
CN116431848A (zh) * | 2023-06-15 | 2023-07-14 | 北京麟卓信息科技有限公司 | 一种基于数据污染传播分析的纹理动态索引方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470893A (zh) * | 2007-12-26 | 2009-07-01 | 中国科学院声学研究所 | 一种基于位图缓存的矢量图形显示的加速方法 |
CN101763625A (zh) * | 2009-12-24 | 2010-06-30 | 广东威创视讯科技股份有限公司 | 一种图像像素处理方法 |
-
2010
- 2010-11-25 CN CN 201010558913 patent/CN102073976A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470893A (zh) * | 2007-12-26 | 2009-07-01 | 中国科学院声学研究所 | 一种基于位图缓存的矢量图形显示的加速方法 |
CN101763625A (zh) * | 2009-12-24 | 2010-06-30 | 广东威创视讯科技股份有限公司 | 一种图像像素处理方法 |
Non-Patent Citations (1)
Title |
---|
《微计算机信息(测控仪表自动化)》 20041231 史京玲,刘旺开,白涛 VC环境下监控软件流程图界面的开发 P43-P44 1-6 第20卷, 第4期 2 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955680B (zh) * | 2011-08-25 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 写屏方法及具写屏功能的移动终端 |
CN102955680A (zh) * | 2011-08-25 | 2013-03-06 | 腾讯科技(深圳)有限公司 | 写屏方法及具写屏功能的移动终端 |
EP2575351A3 (en) * | 2011-10-01 | 2014-01-08 | Samsung Electronics Co., Ltd | Method and apparatus of generating a multi-format template image from a single format template image |
US8929666B2 (en) | 2011-10-01 | 2015-01-06 | Samsung Electronics Co., Ltd | Method and apparatus of generating a multi-format template image from a single format template image |
CN103390090B (zh) * | 2012-05-07 | 2017-12-22 | 腾讯科技(深圳)有限公司 | 图像处理的方法和装置 |
CN103390090A (zh) * | 2012-05-07 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 图像处理的方法和装置 |
CN105959601A (zh) * | 2016-05-11 | 2016-09-21 | 四川友熙环保科技有限责任公司 | 一种空气质量检测系统的空气质量显示画面的刷新方法 |
CN106875884A (zh) * | 2016-12-30 | 2017-06-20 | 歌尔科技有限公司 | 一种绘制单色屏幕的方法和装置及一种电子设备 |
CN106875884B (zh) * | 2016-12-30 | 2020-06-26 | 歌尔科技有限公司 | 一种绘制单色屏幕的方法和装置及一种电子设备 |
CN107656108A (zh) * | 2017-11-09 | 2018-02-02 | 光科技股份有限公司 | 适用于电力计量的rcm快显方法及装置 |
CN111787355A (zh) * | 2020-06-29 | 2020-10-16 | 西安万像电子科技有限公司 | 远程图像更新的方法及装置 |
CN116431848A (zh) * | 2023-06-15 | 2023-07-14 | 北京麟卓信息科技有限公司 | 一种基于数据污染传播分析的纹理动态索引方法 |
CN116431848B (zh) * | 2023-06-15 | 2023-08-15 | 北京麟卓信息科技有限公司 | 一种基于数据污染传播分析的纹理动态索引方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102073976A (zh) | 提高图像区域刷新速度的方法及装置 | |
CN110377285B (zh) | 一种生成页面骨架屏的方法、装置及计算机设备 | |
US8355026B2 (en) | System, method, and program for displaying multiple windows having different resolutions | |
CN101763625A (zh) | 一种图像像素处理方法 | |
CN107943363B (zh) | 背景图像的配置方法及装置、交互智能平板及存储介质 | |
CN103136721A (zh) | 内联图像旋转 | |
CN101038737A (zh) | 多屏合成显示装置及方法 | |
CN102340698B (zh) | 一种基于svg的机顶盒界面的表现方法 | |
CN202650497U (zh) | Lcd显示控制器 | |
CN105094289A (zh) | 一种实现图形用户交互界面的方法、设备及系统 | |
CN113570733A (zh) | 一种基于WebGL的图形渲染方法、装置及系统 | |
JP5823052B2 (ja) | グラフィックス描画装置 | |
CN106251291A (zh) | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 | |
EP0284904A2 (en) | Display system with symbol font memory | |
CN103915035B (zh) | 一种数据转换方法及数据转换装置 | |
CN1130666C (zh) | 图形涂抹装置 | |
CN101753856A (zh) | 一种处理字符显示的方法、装置及包括该装置的设备 | |
CA1200025A (en) | Graphic and textual image generator for a raster scan display | |
CN114201627A (zh) | 一种用于电子墨水屏的显示方法、装置、设备及存储介质 | |
CN109471613A (zh) | 核安全级应用的图形文件生成方法和系统 | |
CN102280098B (zh) | 点阵字缩放的方法及系统 | |
EP3321793A1 (en) | Method and system for real-time slide displaying of scanned image | |
CN101178775A (zh) | 二值图打印数据的处理方法 | |
CN102054280B (zh) | 快速生成矢量图的方法及装置 | |
CN101566934B (zh) | 一种虚拟打印的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110525 |