
在位图上加入水印文字(MFC)
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文章介绍了如何使用MFC框架,在位图图像中添加版权或个性化信息的文字水印。通过简单步骤实现图片保护与美化。
给定资源或指定位图文件添加水印文字的类示例:
创建一个水印操作类对象:
```cpp
CWaterMark mark(IDB_BITMAP1);
```
接下来,构造字体GDI对象并设置为水印文本使用的字体:
```cpp
HFONT hFont = CreateFontA(28, 0, 0, 0, FW_BOLD, 1, 0, 0,
DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH,
_T(华文楷体));
mark.SetTextFont(hFont);
```
设置水印文字的颜色:
```cpp
mark.SetForeColor(RGB(255, 128, 0));
```
向位图的右下角添加一条水印文本,也可以根据需要添加多条。自动添加时,文字与图片上下左右顶端的距离由 `mark.m_leftSpacing`, `mark.m_rightSpacing`, `mark.m_topSpacing` 和 `mark.m_bottomSpacing` 控制:
```cpp
mark.AddWaterMark(Hello World, CWaterMark::Location::RightBottom);
```
获取位图信息并将其拷贝到客户区视图DC中,然后释放设备上下文(DC)资源。
最后保存结果至指定文件位置:
```cpp
BITMAP bmp;
mark.GetBitmap(&bmp);
CDC* pDC = GetDC();
pDC->BitBlt(0, 0, bmp.bmWidth, bmp.bmHeight,
CDC::FromHandle(mark.GetMemoryDC()), 0, 0, SRCCOPY);
ReleaseDC(pDC);
//保存结果到指定位图文件
mark.Save(C:\\1.bmp);
```
全部评论 (0)


