这个程序功能上没有什么创造性,只是把一些单纯的功能拼接在一起,能达到像图片里写汉字的简单目标而已,见笑了。
思路是首先从字体库中得到汉字的编码,进而得到汉字点阵,然后在利用点阵利用cvSet2D函数将点阵画在图片上。
我建立的是一个基于基本对话框的程序,功能是当某一按钮按下的时候,把编辑框中输入的汉字以12*12的大小写入图片,下面是源码
const int reglen = 94; //每区(行)有 94 位(列)
const int font_width = 12; // 单字点阵宽度(列数)
const int font_height = 12; // 单字点阵高度(行数)
const int dotsize = font_width * font_height /8; //一个汉字点阵所占的字节数
const int subcode = 0xa0; //内码与区、位码的差值
char *font_file_name = "simsun12.fon"; // 点阵字库文件名
char str[2]; //要显示点阵信息的汉字
char bindot[dotsize] = {0}; //存储点阵信息的数组
//确认生成汉字点阵
void CHanziOpenCVDlg::OnHanziTest()
{
//首先得到编辑框数据
UpdateData(true);
//得到汉字的一部分
CString partHanzi;
//得到汉字在字符串中的位置转化为的字符串
CString num;
//点阵文件夹名字
CString Docname="hanzidianzhen";
//建立文件夹
D