平台需要对违法车辆进行添加文字水印处理,上传jpg图片时。
直接上关键代码:
Graphics *pGraph = Graphics::FromImage(m_pBmp);
// 获取图片尺寸
int ix = m_pBmp->GetWidth();
int iy = m_pBmp->GetHeight();
//Brush *brush = new SolidBrush (Color(255, 255, 255)); // 白字
Brush *brush = new SolidBrush(Color(0, 0, 0)); // 黑字
//Font *font = new Font(L"Arial", 12);
Font *font = new Font(L"宋体", 14);
PointF ptf;
ptf.X = 10;
ptf.Y = iy - 30; // 显示水印文字在图片下方位置
//ptf.X = m_OriginX; // 可调整字体显示位置
//ptf.Y = m_OriginY;
//确定字符长度
int nLen = MultiByteToWideChar(CP_ACP, 0, szText, -1, NULL, 0);
//在位图中输出字符串
//点位编号:B130635002 时间:2023-01-10 13:22:22 车牌号:冀F12345 地点:温留路 林格曼黑度限值:1 林格曼黑度监测值:3 违法编码:6063 违法行为:驾驶排放检验不合格的机动车上道路行驶
pGraph->DrawString(szText.AllocSysString(), nLen, font, ptf, brush);
szText.ReleaseBuffer();
Color clr;
HBITMAP hBmp, hOldBmp;
m_pBmp->GetHBITMAP(clr, &hBmp);
hOldBmp = m_ImageDemo.SetBitmap(hBmp);
if (hOldBmp)
{
DeleteObject(hOldBmp);
}
SaveFile(m_pBmp,L"111.jpg");
实现效果图:
实例资源地址:图片添加文字水印