解决方案 »
- 在ActiveX(MFC)中通过CreateNewItem方式创建Word控件时总是失败,但是以CreateFromFile方式创建对象时却能成功
- 面向连接的套接字连接失败,不懂!请大哥大姐们指点!在线等!
- CMainFrame 和 自己从CWnd派生的类的区别?疑惑!!!!
- 请教关于控件焦点问题
- installshield 6.3打包时任何把程序的安装目录写入注册表!
- 基础问题,特别简单!
- 图象处理中的DCT变换
- 各位:CSocket中,客户端出现死机时服务器端并不能马上收到CSocket.onclose信号,要一分钟左右,为什么?
- [VC6]益智型文字游戏智勇三国2 纯免费不联网
- 图像转换模块!!!
- 如何使用MSXml来解析带命名空间的xml
- VC dll导出的类.如何访问它的成员变量?
参考:http://topic.csdn.net/u/20090915/10/886ae65c-3d10-415a-b454-450d0864a5a4.html?45459
1:你画的roundrect还差外圈,没有了外圈向下斜.
2:不过你那roundrect的四只角确实......丑,这个比较汗.
现在实现一下就知道原因了..因为偶也弄成那样了 -_-"
其实就是那个圆弧的问题.每行扫描线的圆弧大小应该也渐变,偶那是把它设成一样大,所以外面包不住里面而"漏画"了某些pixel.
就变成那副死相了,哈哈.
(放大来看就很明显了,估计你的也一样原因.)
在一幅巨图上画了个roundrect.
不搞了.
哈哈。你用gdi实现的吗?
感觉全部都透明了。还是没有达到预想的效果。
不过很感谢哥们。
gdi怎么实现透明的?setpixel?
偶根本不清楚你想实现啥效果..
只是想怎么搞定round rect那四只角而已..没错,当然是用gdi的,不过比你用gdi+来实现估计要快N多.btw:别小看setpixel..要是经"特殊"设计过的setpixel,估计没有啥方法会快过它呢(当然不是指gdi的函数SetPixel()/GetPixel()),不过偶那不是用"setpixel",也不必用那么复杂.
说清楚点哈,透明渐变和渐变透明意思差很远的呢. :)
不过那还不容易么.哎..那个圆角还没见过那么烦的,偶是用round rect画出来的,不过是处理过的.
你终于想起你究竟想要什么了吧..呵呵.
实际上就是想解决因为GDI/GDI+画圆弧的pixel走样问题而已,哈哈,其实我就是等你问这个的,别见怪哦..
不过遗憾的是,我从不用GDI+的,我只能告诉你我的方法:
由于使用了GDI函数来画,而不是自己的绘图函数,所以无法做到前置滤波来达到反走样效果.
那就只能使用后置滤波了...
search这个round rect,把漏掉的pixel插值补回(ARGB).
当然,偶那其实也不叫后置滤波,因为最终一样要mix argb到背景.当mix的时候,顺手把它滤掉,hoho.或许还有其它更好的办法,不过偶就不知道了.抱歉.
怎么补回?比如画一个圆角矩形后,如何把漏掉的pixel补回?弄点代码提示?
如何取得圆角的一系列坐标?
http://www.cppprog.com/2009/0829/153_4.html