使用 GDI+ 进行双缓冲绘图

2016-01-29 12:41 11 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); } }

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

延伸阅读
在.net Framework的框架中有很多操作各种图形的函数,包括:点,线,面等等,构成的各种各样的丰富的图象。 在这里我主要是介绍在.Net Framework中GDI+下的TEXT(文本)的操作。首先以一个小小的程序开始: 建立一个Windows应用程序 在窗体上添加一个Button控件 和 一个PictureBox控件. 在Button控件的事件中添加,如下代码: SizeF textSize...
当应用程序中使用多次GDI调用绘制到窗口中时,在窗口清除并被重新绘制时,会出现明显的闪烁。使用双缓冲技术可轻松消除闪烁。 步骤如下: 1、假设当前显示设备上下文为CDC * pDC; 2、使用CDC对象创建可兼容设备上下文,       CDC memdc;       memdc.CreateCompatibleDC(pDC); 3、使...
标签: vb
这个程序实现了以下的功能:将BMP、JPG、jpeg、GIF、.png、.tiff文件转化成ico文件,可以对转化后的文件进行编辑;创建并编辑一个新的ico文件;对已有的ico文件进行编辑。所有被编辑的文件都保存为ico文件,可以在任何可使用ico文件的地方使用它们。 我先说明一下什么是GDI+。GDI+ 是GDI(Windows 早期版本提供的图形设备接口)的...
前几天没事,写了一个小程序,可以用于学习C#。 程序使用了VS.NET环境编译,你的机器只要安装了.NET Framework SDK就可以运行。 源码和执行文件可以下载 http://www.wh-adv.com/download/five.zip 你不想下载也可读一下源码(图片资源等需要下载)。 namespace Leimom.FiveChess { using System; using System.Drawing; using Syst...
显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。 MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。 我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈...

经验教程

761

收藏

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