C#如何消除绘制图形缩放时抖动,总结
2017-05-31 17:53
309 查看
一、手动双缓冲
首先定义一个Bitmap Bitmap backBuffer = new Bitmap(画布宽度, 画布高度); 然后获取这个Bitmap的Graphics Graphics graphics = Graphics.FromImage(backBuffer); 然后在这个graphics上进行绘图 graphics.Clean(Color.Black); 当所有绘图完成之后,将这个Bitmap再绘制到窗口的画布上,注意不要清理窗口的画布: windowGraphics.DrawImage(backBuffer, 0, 0, backBuffer.Width, backBuffer.Height); 以上步骤做到的是手动的双缓冲,在GDI+中使用双缓冲效率会非常的慢,所以如果要求效率的话则不推荐使用GDI+。
二、其它方案
2.1 高清缩放
g.InterpolationMode = InterpolationMode.HighQualityBicubic不过会慢点的...建议重写那些函数,在处理完之后再统一刷新...
g.PixelOffsetMode = PixelOffsetMode.HighQuality; 这个是高清缩放
2.2 开启双缓冲
this.DoubleBuffered = true;可以看一下这方面的知识参考博文1. C#如何消除绘制图形缩放时抖动
相关文章推荐
- 图形编程入门之如何创建用于绘制的 Graphics 对象
- SVG基础——如何使用可缩放矢量图形(SVG)
- vs2008中如何在项目属性中切换“图形形式”和“控制台形式”——即调出或消除黑窗口
- 轻量级网页客户端矢量图形绘制技术总结(lightweight techniques for online drawing)
- 幻灯片PPT(PowerPoint)绘制的图形如何转为EPS格式
- Android 图形:绘制渐变色奥运五环图形,游戏文字,验证码,Matrix旋转,缩放,倾斜,平移等
- 图形编程入门之如何创建用于绘制的 Graphics 对象
- SVG(可缩放矢量图形)基本图形绘制方法与path路径命令
- Quart 2D 绘制图形简单总结
- vs2008中如何在项目属性中切换“图形形式”和“控制台形式”——即调出或消除黑窗口
- android绘制图形总结
- 数学建模常用Matlab/Lingo/c代码总结系列——Matlab图形绘制函数汇总
- Quart 2D 绘制图形简单总结
- Symbian编程总结-图形图像篇-使用双缓存进行图形的绘制
- matlab画图,如何消除图形中多余的空白区域
- 如何用ChemDraw 绘制透视图形
- 如何利用SurfaceView来绘制组合图形
- OBJECT ARX 绘制常用图形 总结
- 简单几何图形绘制总结
- 如何不用图片绘制图形精灵