WPF与Gdi绘制比较
2012-01-01 22:22
169 查看
说到图形处理,这里先说一下GDI+,GDI+固然强大但没有 硬件加速,全靠软件实现,而且功能受限,而WPF全部(号称)通过显卡GPU计算处理,采用Direct3D引擎,而且硬件加速,强行贯入的“与设备无关 单位”概念,让计算机图形处理更加生动有趣,但也有一些人不“适应”,因为WPF渲染引擎绘制时进行了平滑处理,结果把文字也“平滑”了,习惯了XP的像 素字体的人都觉得WPF的字体太模糊了,尤其是系统默认的12号宋体字,虽然雅黑体看上去要好一些,但还是有人死咬住这个问题不放,其实这只是习惯问题,
等windows 7普及后就会好一点了,而且据说.NET Framework 4.0加入了文字锯齿选项,到时候这个问题自然会解决。
这里我不是来解决这个字体问题(而且事实上我个人认为根本不用解决,雅黑体很好看的),这里我想说的是GDI+和WPF各有优劣,不要进行取舍,以后图 形领域发展什么样大家都不知道,目前来讲大部分GUI和图片处理还是要靠GDI+(和GDI)的,尤其是像素图形处理。
这里我分别用 GDI+和WPF做了两个图表控件,其中GDI+绘制的的图形,我故意全部采用很小的像素字体,文字仍然清晰可见(WPF肯定做不到)。而WPF绘制的的 图形,也尽量做成像素效果,而且多加了一些效果,而且有几个效果没有由于平滑取消了,背影横向标线设置SnapsToDevicePixels能保留下 来,结果速度比GDI+绘制要慢至少10倍(包含取数据库数据)。
WPF虽然效果强大,但开销太大了,所以在做项目时,最好根据实际需求来取舍,尤其是桌面的图形绘制,努力一点GDI+同样能做出很炫的效果。
等windows 7普及后就会好一点了,而且据说.NET Framework 4.0加入了文字锯齿选项,到时候这个问题自然会解决。
这里我不是来解决这个字体问题(而且事实上我个人认为根本不用解决,雅黑体很好看的),这里我想说的是GDI+和WPF各有优劣,不要进行取舍,以后图 形领域发展什么样大家都不知道,目前来讲大部分GUI和图片处理还是要靠GDI+(和GDI)的,尤其是像素图形处理。
这里我分别用 GDI+和WPF做了两个图表控件,其中GDI+绘制的的图形,我故意全部采用很小的像素字体,文字仍然清晰可见(WPF肯定做不到)。而WPF绘制的的 图形,也尽量做成像素效果,而且多加了一些效果,而且有几个效果没有由于平滑取消了,背影横向标线设置SnapsToDevicePixels能保留下 来,结果速度比GDI+绘制要慢至少10倍(包含取数据库数据)。
WPF虽然效果强大,但开销太大了,所以在做项目时,最好根据实际需求来取舍,尤其是桌面的图形绘制,努力一点GDI+同样能做出很炫的效果。
相关文章推荐
- GDI中获取字符串精确绘制范围的两种做法比较
- WPF优点之比较GDI,GDI+
- GDI中获取字符串精确绘制范围的两种做法比较
- WPF优点之比较GDI,GDI+
- 深入C# winform清除由GDI绘制出来的所有线条或图形的解决方法
- 使用GDI绘制验证码
- GDI,CxImage,GDI+之比较
- 报表工具考察的指标与比较-3、绘制方案
- 【C#】第3章补充(一)如何在WPF中绘制正弦曲线
- 使用GDI绘制验证码
- wpf与winform布局比较
- C#使用GDI绘制格尺
- HGE使用GDI绘制中文字体
- iOS中如何用纯代码绘制比较复杂图表UI
- WPF初学之绘制自己需要的Slider
- D2D引擎与GDI\GDI+绘制效果对比
- WPF-22:WPF绘制五角星改进版(增加半个五角星的绘制)
- WPF拖动绘制
- 如何使用图像绘制区域wpf
- WPF - 取代GDI/GDI+ ?