最多用来加载各种图像文件,然后拷出位图,自己处理。直接用graphic绘图,简直是变态,微软怎么想的。
解决方案 »
- 请问如何将多线程里得到的数据,显示到mfc界面上?
- 怎么让CStatic或CButton既垂直居中,又可以自动换行
- 菜鸟之问!
- 向导生成的单文档程序,将视图类的父类CView换为CHtmlView 类,程序运行出错,求解决方法
- 太奇怪了!用odbc写access数据库出了奇怪问题,大家来帮忙
- 怎样拉伸对话框的大小
- iocp完成端口接收数据导致WS2HELP.DLL崩溃,诚心求教
- 对于一个ASF文件,知道某一帧的时间点,怎么得到它在第几个packet的第几个Key frame后面?
- 发现windows程序没有main(),那么他们从那开始执行的呢?——新手,请多指教
- 关于属性表的问题,回答一定给分,请各位高手帮帮忙
- 多线程中延时的问题
- 想用到ole的功能,是应该import一个dll,还是pragma lib加入一个lib?
有段时间想转型
从GDI过渡到GDI+
不过发现GDI+的文字绘制太麻烦了
当然也有可能是我学艺不精
所以到现在还是使用GDI
每当我看到这些谬论的时候,总有一种想骂人的冲动,不过骂人必然会导致别人骂我,不值得。CSDN有太多的菜鸟了,真是可惜了这个好论坛啊。GDI+的绘制确实比GDI慢了一个档次,有几个解决方案,一是用cachedbitmap,还有一个就是把图像加载为用PARGB格式的图像。可以参考这篇文章:http://www.codeproject.com/Tips/66909/Rendering-fast-with-GDIplus-What-to-do-and-what-no.aspx
Rendering fast with GDI+ - What to do and what not to do!作为一个图像图形库,GDI+在很多方面不是GDI能比拟的。
这方面你应该是专家了
呵呵
其实我觉得闻道有先后,术业有专攻
每个人都不可能面面俱到么
GDI+有优势这是不言自明的
不过也正如你所说的
真正要做专业图形图像处理要么用专用SDK要么自己写底层
无论是GDI还是GDI+我觉得它都不是面向专业图形开发的工具
而一旦脱离专业领域
对于一些外行人(比如说我)来说对他的评价自然会显得有失水准
而只是从个人体验来评价
但要说它慢得不可忍受,也是一种误解,它的特点是平台通用性和稳定性,比某些第三方2D库是慢些,但并不是一点优化也没有,至少我能看出它用多线程执行图像运算,不过是不是使用了多媒体指令或者GPU运算就不得而知了。
任意绘制一个图像为任意大小,含alpha通道,也就是透明效果。
任意切割和缩放一个图像。
转换图像为任意位数。
把图像的位图数据提取为数组,一般如果要处理数据32为是最方便的。
把处理后的数据刷新到图像。
转换bmp图像为图标,windows图标在内存里其实可以是任意大的。没有256像素的限制,但是图标文件格式不能超过这个限制。
把图标转换为图像。
。。你觉得还有那些功能必须用gdi+呢,我宁可自己写效果也不愿意使用现成的微软的那些复杂函数,他们的效果真的不尽如人意。
微软的工具栏,按钮图像,ComboEx等很多控件,微软设计了很多功能,但是有多少人在用呢?稍微讲究一点的程序,都在自己做效果。RichEdit控件有多复杂,但是那个编辑器会用它呢?。doc文件有多复杂,有多少接口,标准,word可以用来看网络电视,但你会用它看吗?微软那些东西,换了任何一个公司都做不出来,因为太庞大,太复杂,其实,微软开发的东西,人们能用到10%就不错了。mfc也是一样,有个专家说过,mfc从来也没有流行过。
再加上双缓冲可以解决闪烁问题,不要遇到问题了就归结为类库的问题,只是你自己不会用而已。
你看,你这么说问题就来了
如果缓冲dc用的好,我不相信还会有闪烁
无论是gdi还是gdi+,只是绘制技术,跟双缓冲无关
还是先搞清楚到底是自己在什么地方产生了闪烁吧,不要出了问题不思解决,就一股脑的归结在技术上微软的技术一定也有很多缺陷,但是出了问题,更应该先考虑自身,而不是埋怨他人
做过的才知道为什么。
想自己做这样又做那样的人结果是什么都做不成!不信你做个1/10的MFC出来?或者做个WTL出来?不知天高地厚!
说实话,我没用过GDI+处理任何问题,因此我对它也没有什么感情,但是存在即为道理,既然前辈们都用了,并且在硬件低下的那年代都没什么问题,那么我们是否可以思考下自己的设计方案呢?