By darkoman
翻译:朱金灿
原文出处:http://www.codeproject.com/KB/graphics/CBitmapEx.aspx
译文来源:http://blog.csdn.net/clever101
简介:
这篇文章介绍了一个叫CBitmapEx的简单的C++位图 *** 作类。很多次我面对这样一个事实:MFC库只能提供一个只带有有限特征的C++位图 *** 作类CBitmap
。我需要诸如比例尺、旋转角度、应用不同滤波等等特征,但是
CBitmap
并不具有。另一个类
CDC
(设备上下文)提供了诸如拉伸度、透明性和透明混色等更多的选项,但它运行得太慢(被很多人很多次所证实)。
所以,我决定去写另一个(是的,另一个)不依赖MFC的位图 *** 作类,并且提供一些目前在原来MFC没有实现的特性。这个类能加载任何8位、16位、24位和32位的位图,但在里面是和32位位图运行的。能够将结果图像保存24位位图到硬盘,或者它能够在设备上下文中画出位图。
背景
在Code Project有很多文章讨论过这个话题,所以你可以随意翻阅它们并将它们的最终结果和我的实现作比较。
代码用法
使用这个类非常简单,请看下面:
- #include "BitmapEx.h"
- // 装载位图
- CBitmapEx bitmapEx;
- bitmapEx.Load(_T("Enter bitmap source file path here..."));
- // Do whatever you need to do here
- bitmapEx.Rotate(45);
- bitmapEx.Sepia();
- bitmapEx.Scale(50, 50);
- // 在屏幕上绘制位图(首先在别的地方得到设备句柄)
- bitmapEx.Draw(hDC);
- // 保存位图
- bitmapEx.Save(_T("Enter bitmap destination file path here..."));
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)