2011年9月27日
摘要: 前两天有个朋友让我帮他编一个图象处理方面的程序,需要支持目前常见的图像格式.这可把我难住了.一直以来都只会用Visual C++的CBitmap类加载各种位图资源,然后处理.Visual C++的CBitmap类的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。如果想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码,未免过于繁琐. 这阵子在学C#,装了visual studio2003.索性在网上找了一下,竟然发现.net引入了一个功能非常强大的新类 . 阅读全文
posted @ 2011-09-27 10:53 carekee 阅读(894) 评论(0) 推荐(0)
摘要: ATL::CImage 的透明通道的处理与格式转换1、透明通道的处理:在 CImage 的处理中,(其实就是 Windows 中的位图处理)一切的绘图函数都不修改透明通道的值,即使你进行 TransparentBlt 调用(关于该函数很有意思,在不包含透明通道的位图处理中,进行透明色的过滤处理,否则直接复制透明通道到目标DC),或者你使用 AlpahBlend ,更是直接对 RGB 三原色进行混合运算,而不会对透明通道进行任何的处理,换句话说,在32位的 RGBA 格式位图中,所有的 GDI 函数都是将位图当做 RGBX 格式进行处理的;因此创建一个包含透明通道的32位位图,进行绘图,然后保存 阅读全文
posted @ 2011-09-27 10:52 carekee 阅读(1020) 评论(0) 推荐(0)
摘要: VC6如何使用VS2005中的CImage类功能 由于VC6启动速度快,产生的执行代码小,还有可爱的类向导,所以许多C++程序员还工作在VC6环境中。 但是我们想在VC6中用VS2005中的新功能怎么办呢?例如CImage类(有很强的图像处理功能).当然我们无法直接使用CImage了,经过我的思考和实践,以下方法是可行的: 用VS2005生成一个CImage2005动态库,然后用VC6调用就可以了。DLL主要代码如下://Image2005.h#pragma onceclass AFX_EXT_CLASS CImage2005//导出整个类{private:void *m_pImage... 阅读全文
posted @ 2011-09-27 10:51 carekee 阅读(1358) 评论(0) 推荐(0)