我正在使用以下代码对网络摄像头的框架进行签名:
Font = CreateFont(18, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, VARIABLE_PITCH, "times");
...
HDC hDC = CreateCompatibleDC(NULL);
unsigned char * img = 0;
HBITMAP hBitmap = CreateDIBSection(hDC, &BMI, DIB_RGB_COLORS, (void**)&img, NULL, 0);
memcpy(img, CameraFrame.data, CameraFrame.size());
free(CameraFrame.data);
CameraFrame.data = img;
SelectObject(hDC, hBitmap);
SelectObject(hDC, Font);
SetBkMode(hDC, TRANSPARENT);
SetTextColor(hDC, RGB(255,255,255));
string Text = "Test";
DrawTextA(hDC, Text.c_str(), Text.size(), &rect, DT_CENTER | DT_WORDBREAK);
DeleteDC(hDC);
当然,框架的色阶会有所不同,无论如何我都需要文本可见。
如何用大纲
DrawText
? 例如,带有黑色轮廓的白色文本。 最佳答案
两种方法:
{ (-1,-1), (1,1), (-1,1), (1,-1) }
偏移,然后以白色绘制。 关于c++ - 使用GDI(C++)绘制轮廓的DrawText,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44265273/