当前位置: 首页 > news >正文

一台服务器怎么做多给网站移动软件开发工程师

一台服务器怎么做多给网站,移动软件开发工程师,宝安公司网站建设比较好的,我的世界做皮肤壁纸网站OpenCV显示中文汉字#xff0c;未使用CvxText和FreeType库 采用windows的GDI显示系统的TrueType字体#xff0c;没有封装#xff0c;就两个函数#xff0c;分成了h和cpp文件#xff0c;可以自己编辑文件名和函数名#xff0c;亦可以直接将cpp的代码复制到你需要的程序中…OpenCV显示中文汉字未使用CvxText和FreeType库 采用windows的GDI显示系统的TrueType字体没有封装就两个函数分成了h和cpp文件可以自己编辑文件名和函数名亦可以直接将cpp的代码复制到你需要的程序中。 putText.hputText.cpp演示 文件putText.h 后面的cpp文件有一些简要说明。 #ifndef PUTTEXT_H_ #define PUTTEXT_H_ #include windows.h #include string #include opencv2/opencv.hpp using namespace cv; void GetStringSize(HDC hDC, const char* str, int* w, int* h); void putTextZH(Mat dst, const char* str, Point org, Scalar color, int fontSize, const char *fn Arial, bool italic false, bool underline false); #endif // PUTTEXT_H_ putText.cpp 第二个函数putTextZH()默认使用Arial字体也可以设置成操作系统中已经安装的字体如“宋体”、“微软雅黑”、“Times New Roman”等默认显示非斜体、非下划线。 #include putText.h void GetStringSize(HDC hDC, const char* str, int* w, int* h) { SIZE size; GetTextExtentPoint32A(hDC, str, strlen(str), size); if (w ! 0) *w size.cx; if (h ! 0) *h size.cy; } void putTextZH(Mat dst, const char* str, Point org, Scalar color, int fontSize, const char* fn, bool italic, bool underline) { CV_Assert(dst.data ! 0 (dst.channels() 1 || dst.channels() 3)); int x, y, r, b; if (org.x dst.cols || org.y dst.rows) return; x org.x 0 ? -org.x : 0; y org.y 0 ? -org.y : 0; LOGFONTA lf; lf.lfHeight -fontSize; lf.lfWidth 0; lf.lfEscapement 0; lf.lfOrientation 0; lf.lfWeight 5; lf.lfItalic italic;   //斜体 lf.lfUnderline underline; //下划线 lf.lfStrikeOut 0; lf.lfCharSet DEFAULT_CHARSET; lf.lfOutPrecision 0; lf.lfClipPrecision 0; lf.lfQuality PROOF_QUALITY; lf.lfPitchAndFamily 0; strcpy_s(lf.lfFaceName, fn); HFONT hf CreateFontIndirectA(lf); HDC hDC CreateCompatibleDC(0); HFONT hOldFont (HFONT)SelectObject(hDC, hf); int strBaseW 0, strBaseH 0; int singleRow 0; char buf[1 12]; strcpy_s(buf, str); char *bufT[1 12];  // 这个用于分隔字符串后剩余的字符可能会超出。 //处理多行 { int nnh 0; int cw, ch; const char* ln strtok_s(buf, \n, bufT); while (ln ! 0) { GetStringSize(hDC, ln, cw, ch); strBaseW max(strBaseW, cw); strBaseH max(strBaseH, ch); ln strtok_s(0, \n, bufT); nnh; } singleRow strBaseH; strBaseH * nnh; } if (org.x strBaseW 0 || org.y strBaseH 0) { SelectObject(hDC, hOldFont); DeleteObject(hf); DeleteObject(hDC); return; } r org.x strBaseW dst.cols ? dst.cols - org.x - 1 : strBaseW - 1; b org.y strBaseH dst.rows ? dst.rows - org.y - 1 : strBaseH - 1; org.x org.x 0 ? 0 : org.x; org.y org.y 0 ? 0 : org.y; BITMAPINFO bmp { 0 }; BITMAPINFOHEADER bih bmp.bmiHeader; int strDrawLineStep strBaseW * 3 % 4 0 ? strBaseW * 3 : (strBaseW * 3 4 - ((strBaseW * 3) % 4)); bih.biSize sizeof(BITMAPINFOHEADER); bih.biWidth strBaseW; bih.biHeight strBaseH; bih.biPlanes 1; bih.biBitCount 24; bih.biCompression BI_RGB; bih.biSizeImage strBaseH * strDrawLineStep; bih.biClrUsed 0; bih.biClrImportant 0; void* pDibData 0; HBITMAP hBmp CreateDIBSection(hDC, bmp, DIB_RGB_COLORS, pDibData, 0, 0); CV_Assert(pDibData ! 0); HBITMAP hOldBmp (HBITMAP)SelectObject(hDC, hBmp); //color.val[2], color.val[1], color.val[0] SetTextColor(hDC, RGB(255, 255, 255)); SetBkColor(hDC, 0); //SetStretchBltMode(hDC, COLORONCOLOR); strcpy_s(buf, str); const char* ln strtok_s(buf, \n, bufT); int outTextY 0; while (ln ! 0) { TextOutA(hDC, 0, outTextY, ln, strlen(ln)); outTextY singleRow; ln strtok_s(0, \n, bufT); } uchar* dstData (uchar*)dst.data; int dstStep dst.step / sizeof(dstData[0]); unsigned char* pImg (unsigned char*)dst.data org.x * dst.channels() org.y * dstStep; unsigned char* pStr (unsigned char*)pDibData x * 3; for (int tty y; tty b; tty) { unsigned char* subImg pImg (tty - y) * dstStep; unsigned char* subStr pStr (strBaseH - tty - 1) * strDrawLineStep; for (int ttx x; ttx r; ttx) { for (int n 0; n dst.channels(); n) { double vtxt subStr[n] / 255.0; int cvv vtxt * color.val[n] (1 - vtxt) * subImg[n]; subImg[n] cvv 255 ? 255 : (cvv 0 ? 0 : cvv); } subStr 3; subImg dst.channels(); } } SelectObject(hDC, hOldBmp); SelectObject(hDC, hOldFont); DeleteObject(hf); DeleteObject(hBmp); DeleteDC(hDC); } 演示 读取一个图片加入字体显示。 #include opencv2/opencv.hpp #include putText.h using namespace std; using namespace cv; int main() { Mat img imread(1000.jpg); putTextZH(img, Arial字体换...\n行显示!, Point(50, 50), Scalar(0, 0, 255), 30, Arial); putTextZH(img, 微软雅黑字体换...\n行斜体下划线显示!, Point(50, 100), Scalar(0, 255, 0), 30, 微软雅黑, true, true); putTextZH(img, 楷体字体换...\n行斜体下划线显示!, Point(50, 200), Scalar(128, 255, 0), 30, 楷体, true, true); putTextZH(img, 梁朝伟, Point(500, 500), Scalar(0, 0, 255), 30, 楷体, false, false); imshow(test, img); waitKey(); return 0; }
http://www.yutouwan.com/news/363085/

相关文章:

  • 企业网站建设需要准备什么白酒类网站模板
  • 装修公司合作平台的网站wordpress 获取title
  • 网上花店网站建设百度seo提高排名费用
  • 中国建设信息网站权重查询
  • c做项目的网站河北邯郸ktv
  • 济南住建局官方网站网站建设营销平台
  • 怎么查看网站是否被百度收录代理注册个公司一般需要多少钱
  • 茌平网站建设公司赤峰市做网站公司
  • 网站开发全程实例课本代码成立网站是不是需要先成立公司
  • 成都网站运营维护厂家网址提交大全
  • 网站和域名低价网站设计多少钱
  • 龙江手机网站建设网站开发岗位职责
  • 平面设计类网站有哪些如何用html做班级网站
  • 做理财的网站有哪些在线生成头像
  • 网站正在建设代码手机端网站建设备案
  • 什么公司网站建设做的好flash如何制作网站
  • 个人网站 前置审批中交路桥建设有限公司网站
  • 网站备案的幕布视频网站源码下载
  • 网站免费认证联盟网站在哪备案
  • 济南市莱芜区网站西安未央区做网站
  • 赶集网网站建设分析茶叶包装设计
  • mip网站实例西安cms建站模板
  • 深圳市建设交易中心网站首页汽车专业科技网站建设
  • 网站微信认证阳江招聘网最新招聘信息网美容框
  • 开江网站建设潍坊关键词优化软件
  • 邯郸做网站流程虚拟服务器怎样做网站
  • 可以用什么网站做mc官方宝安网站设计服务
  • wordpress制作视频站网络服务商怎么查询
  • 法库网站建设.php的网站是怎么做的
  • 杭州 电商设计网站建设公司网站如何做分录