使用 GDI+ 进行双缓冲绘图

2016-01-29 12:41 16 1 收藏

使用 GDI+ 进行双缓冲绘图,使用 GDI+ 进行双缓冲绘图

【 tulaoshi.com - ASP.NET 】

所谓双缓冲,我的理解是在绘图时并不是直接绘到目标设备(例如显示器)上,而是在内存中开辟一个缓冲区,在这个缓冲区里完成所有的绘图后,直接将其拷贝到目标设备上,其中的原理很简单。采用双缓冲技术,由于绘图操作大部分在内存中完成,所以绘图速度没有太大的制约;此外,当进行复杂的绘图操作时,使用双缓冲技术可以有效的防止画面的闪烁。  在 .Net 中,由于 GDI+ 的引入,实现双缓冲更加简单:建立缓冲区从缓冲区取得 Graphics handle, 使用其进行绘图将缓冲区内已绘好的图显示到目标设备上  代码如下: using(Bitmap buffer = new Bitmap(WIDTH, HEIGHT)) { using(Graphics buf_g = Graphics.FromBitmap(buffer)) { //using buf_g to do the drawing, like this: buf_g.DrawRectangle(10, 10, 120, 150); //.... //end of the drawing code } using(Graphics g = /* ... */) { //init g from a Control, or anything else g.DrawBitmap(buffer, 0, 0); } }

来源:http://www.tulaoshi.com/n/20160129/1487175.html

延伸阅读
本问介绍了GDI+支持的大多数图像文件格式,以及GDI+提供的处理图像的文件的两个类:Image和Bitmap   我们知道,在以往的图像处理中,常常要根据不同图像文件的格式及其数据存储结构在不同格式中进行转换。某个图像文件的显示也是依靠对文件数据结构的剖析,然后读取相关图像数据而实现的。现在,GDI+提供了Image和Bitmap类使我们能...
在.net Framework的框架中有很多操作各种图形的函数,包括:点,线,面等等,构成的各种各样的丰富的图象。 在这里我主要是介绍在.Net Framework中GDI+下的TEXT(文本)的操作。首先以一个小小的程序开始: 建立一个Windows应用程序 在窗体上添加一个Button控件 和 一个PictureBox控件. 在Button控件的事件中添加,如下代码: SizeF textSize...
标签: vb
这个程序实现了以下的功能:将BMP、JPG、jpeg、GIF、.png、.tiff文件转化成ico文件,可以对转化后的文件进行编辑;创建并编辑一个新的ico文件;对已有的ico文件进行编辑。所有被编辑的文件都保存为ico文件,可以在任何可使用ico文件的地方使用它们。 我先说明一下什么是GDI+。GDI+ 是GDI(Windows 早期版本提供的图形设备接口)的...
显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。 MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。 我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈...
标签: 电脑入门
如何使用NVIDIA OPTIMUS技术进行双显卡切换? 解决方案 NVIDIA的optimus技术,不需要用户自己干预,系统会自动判断当前任务,然后选择显卡执行任务。 注意: 1、NVIDIA的optimus技术仅支持windows 7系统 2、只有支持3D功能的程序才设置显卡切换的功能,对于2D程序只能使用集成显卡。 如何设置运行3D程序时全程使用独立显卡: 1、...

经验教程

242

收藏

48
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部