没有合适的资源?快使用搜索试试~ 我知道了~
VC写图片,位图的创建与保存
4星 · 超过85%的资源 需积分: 16 25 下载量 7 浏览量
2012-04-26
13:59:51
上传
评论
收藏 11KB TXT 举报
温馨提示
试读
14页
此文件包含4个函数,位图的操作全有,非常详细适用
资源推荐
资源详情
资源评论
void CreateFrontBmp(char *InPath, char * OutPath, CardInfoASC &cardinfo)
{
FILE *fp=fopen(InPath, "rb");
if(fp == NULL)
return ;
fseek(fp, sizeof(BITMAPFILEHEADER), 0);
BITMAPINFOHEADER head;
fread(&head, sizeof(BITMAPINFOHEADER), 1, fp);
int bmpHeight = head.biHeight;
int bmpWidth = head.biWidth;
int biBitCount = head.biBitCount;
int lineByte = (bmpWidth*biBitCount/8+3)/4*4;
RGBQUAD *pColorTable;
if(biBitCount == 8)
{
pColorTable = new RGBQUAD[256];
fread(pColorTable, sizeof(RGBQUAD), 256, fp);
}
unsigned char *pBmpBuf = new unsigned char[lineByte*bmpHeight];
fread(pBmpBuf, 1, lineByte*bmpHeight, fp);
CDC *m_pMemDC;
m_pMemDC = new CDC();
CDC *pDC;
pDC = CDC::FromHandle(GetDC(NULL));//AfxGetMainWnd()-> m_hWnd
m_pMemDC->CreateCompatibleDC(pDC);
CBitmap *m_pOldBmp = NULL;
CBitmap *m_pMemBmp = new CBitmap(); //根据图片的大小创建一个兼容位图
m_pMemBmp->CreateCompatibleBitmap(pDC, bmpWidth, bmpHeight);
m_pMemDC->SelectObject(m_pMemBmp);
// 把图像的数据绘制到兼容位图上
SetDIBits(m_pMemDC->GetSafeHdc(), (HBITMAP)m_pMemBmp->m_hObject,
0, bmpHeight, (LPVOID)pBmpBuf, (BITMAPINFO*)&head, DIB_RGB_COLORS);
m_pMemDC->SetBkMode(TRANSPARENT);
m_pMemDC->SetTextColor(RGB(0, 0, 0));
CFont m_Font;
//建立字体。
m_Font.CreateFont(22, //字体的高度。
15, //字体的宽度。
0, //文本行的倾斜角度。
0, //字符基线的倾斜角度。
10, //字符的粗细。
FALSE, //字体是否为斜体。
FALSE, //字体是否带下划线。
FALSE, //字体是否带删除线。
ANSI_CHARSET, //字体的字符集。
OUT_DEFAULT_PRECIS, //字符的输出精度。
CLIP_DEFAULT_PRECIS, //字符裁剪精度。
DEFAULT_QUALITY, //字体的输出质量。
FF_SWISS, //字符间距(低两位),字体族(高四位)。
_T("宋体 ")); //字体名称。
CFont* oldFont=m_pMemDC->SelectObject(&m_Font);
m_pMemBmp->CreateCompatibleBitmap(pDC, bmpWidth, bmpHeight);
m_pMemDC->SelectObject(m_pMemBmp);
// 把图像的数据绘制到兼容位图上
SetDIBits(m_pMemDC->GetSafeHdc(), (HBITMAP)m_pMemBmp->m_hObject,
0, bmpHeight, (LPVOID)pBmpBuf, (BITMAPINFO*)&head, DIB_RGB_COLORS);
m_pMemDC->SetBkMode(TRANSPARENT);
m_pMemDC->SetTextColor(RGB(0, 0, 0));
CFont m_Font;
//建立字体。
m_Font.CreateFont(22, //字体的高度。
15, //字体的宽度。
0, //文本行的倾斜角度。
0, //字符基线的倾斜角度。
10, //字符的粗细。
FALSE, //字体是否为斜体。
FALSE, //字体是否带下划线。
FALSE, //字体是否带删除线。
ANSI_CHARSET, //字体的字符集。
OUT_DEFAULT_PRECIS, //字符的输出精度。
CLIP_DEFAULT_PRECIS, //字符裁剪精度。
DEFAULT_QUALITY, //字体的输出质量。
FF_SWISS, //字符间距(低两位),字体族(高四位)。
_T("宋体 ")); //字体名称。
CFont* oldFont=m_pMemDC->SelectObject(&m_Font);
剩余13页未读,继续阅读
资源评论
- zhangyuan19852013-06-17还可以 很简单的一个程序
- yyf666882013-05-16还可以 很简单的一个程序
- lodestaring2013-05-10很简单 不知这个下载分啊
- JoePotter2013-05-20简单的程序 还是可以的程序
spark
- 粉丝: 12
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功