📄 func.c
字号:
return nAvgPart; //返回宽度
}
/****************************************************************************************/
//函数名称:PasteWord()
//功能:根据编号选择字符,并粘贴到图像指定位置
//参数:
// unsigned char *pImage 图像数据指针
// int nWidth, int nHeight 图象宽度、高度
// int nIndex 所贴字符编号0-9及汉字和"."
// int nX, int nY 所贴字符左上角坐标
//返回值:无
/****************************************************************************************/
void PasteWord(unsigned char *pImage, int nWidth, int nHeight,
int nIndex, int nX, int nY)
{
int m;
int nCount;
int (*a)[2]; //用来记录实际使用的字符
//数字0
int a0[44][2]={{2,24},{3,24},{4,24},{5,24},{1,23},{2,23},{5,23},{6,23},{1,22},{6,22},{0,21},{1,21},{6,21},{7,21},{0,20},{1,20},{6,20},{7,20},{0,19},{1,19},{6,19},{7,19},{0,18},{1,18},{6,18},{7,18},{0,17},{1,17},{6,17},{7,17},{0,16},{1,16},{6,16},{7,16},{1,15},{6,15},{1,14},{2,14},{5,14},{6,14},{2,13},{3,13},{4,13},{5,13}};
//数字1
int a1[30][2]={{1,24},{2,24},{3,24},{4,24},{5,24},{6,24},{3,23},{4,23},{3,22},{4,22},{3,21},{4,21},{3,20},{4,20},{3,19},{4,19},{3,18},{4,18},{3,17},{4,17},{3,16},{4,16},{3,15},{4,15},{1,14},{2,14},{3,14},{4,14},{3,13},{4,13}};
//数字2
int a2[36][2]={{0,24},{1,24},{2,24},{3,24},{4,24},{5,24},{6,24},{1,23},{2,23},{3,23},{4,23},{5,23},{6,23},{7,23},{2,22},{7,22},{3,21},{4,20},{4,19},{5,19},{5,18},{5,17},{6,17},{5,16},{6,16},{0,15},{5,15},{6,15},{1,14},{4,14},{5,14},{6,14},{2,13},{3,13},{4,13},{5,13}};
//数字3
int a3[36][2]={{5,24},{6,24},{5,23},{6,23},{5,22},{6,22},{0,21},{1,21},{2,21},{3,21},{4,21},{5,21},{6,21},{7,21},{0,20},{5,20},{6,20},{1,19},{5,19},{6,19},{2,18},{5,18},{6,18},{2,17},{5,17},{6,17},{3,16},{5,16},{6,16},{4,15},{5,15},{6,15},{5,14},{6,14},{5,13},{6,13}};
//数字4
int a4[37][2]={{0,24},{1,24},{2,24},{3,24},{4,24},{0,23},{1,23},{4,23},{5,23},{5,22},{6,22},{5,21},{6,21},{5,20},{6,20},{4,19},{5,19},{6,19},{3,18},{4,18},{5,18},{4,17},{5,17},{5,16},{6,16},{0,15},{5,15},{6,15},{0,14},{1,14},{4,14},{5,14},{6,14},{2,13},{3,13},{4,13},{5,13}};
//数字5
int a5[31][2]={{1,24},{2,24},{3,24},{4,24},{1,23},{5,23},{6,22},{6,21},{6,20},{5,19},{6,19},{4,18},{5,18},{6,18},{1,17},{2,17},{3,17},{4,17},{5,17},{2,16},{3,16},{4,16},{2,15},{3,14},{4,14},{5,14},{6,14},{3,13},{4,13},{5,13},{6,13}};
//数字6
int a6[43][2]={{2,24},{3,24},{4,24},{5,24},{1,23},{2,23},{5,23},{6,23},{0,22},{1,22},{6,22},{7,22},{0,21},{1,21},{6,21},{7,21},{0,20},{1,20},{6,20},{7,20},{0,19},{1,19},{6,19},{7,19},{0,18},{1,18},{2,18},{5,18},{6,18},{1,17},{3,17},{4,17},{5,17},{1,16},{2,16},{2,15},{3,15},{3,14},{4,14},{5,14},{5,13},{6,13},{7,13}};
//数字7
int a7[26][2]={{3,24},{4,23},{4,22},{4,21},{5,20},{5,19},{6,18},{6,17},{6,16},{0,15},{7,15},{1,14},{2,14},{3,14},{4,14},{5,14},{6,14},{7,14},{1,13},{2,13},{3,13},{4,13},{5,13},{6,13},{7,13},{8,13}};
//数字8
int a8[44][2]={{2,24},{3,24},{4,24},{5,24},{1,23},{2,23},{6,23},{0,22},{1,22},{6,22},{7,22},{0,21},{1,21},{6,21},{7,21},{1,20},{5,20},{6,20},{2,19},{3,19},{4,19},{5,19},{2,18},{3,18},{4,18},{1,17},{2,17},{5,17},{6,17},{0,16},{1,16},{6,16},{7,16},{0,15},{1,15},{6,15},{7,15},{1,14},{2,14},{6,14},{2,13},{3,13},{4,13},{5,13}};
//数字9
int a9[42][2]={{0,24},{1,24},{2,24},{3,23},{4,23},{4,22},{5,22},{5,21},{6,21},{2,20},{3,20},{4,20},{5,20},{6,20},{1,19},{2,19},{6,19},{7,19},{0,18},{1,18},{6,18},{7,18},{0,17},{1,17},{6,17},{7,17},{0,16},{1,16},{6,16},{7,16},{0,15},{1,15},{6,15},{7,15},{1,14},{2,14},{5,14},{6,14},{2,13},{3,13},{4,13},{5,13}};
//标点"."
int a10[4][2]={{1,24},{2,24},{1,23},{2,23}};
//毫米单位mm
int a11[64][2]={{0,23},{1,23},{2,23},{4,23},{5,23},{6,23},{8,23},{9,23},{10,23},{12,23},{13,23},{14,23},{16,23},{17,23},{18,23},{20,23},{21,23},{22,23},{1,22},{5,22},{9,22},{13,22},{17,22},{21,22},{1,21},{5,21},{9,21},{13,21},{17,21},{21,21},{1,20},{5,20},{9,20},{13,20},{17,20},{21,20},{1,19},{5,19},{9,19},{13,19},{17,19},{21,19},{0,18},{1,18},{2,18},{5,18},{6,18},{9,18},{12,18},{13,18},{14,18},{17,18},{18,18},{21,18},{1,17},{3,17},{4,17},{7,17},{8,17},{13,17},{15,17},{16,17},{19,17},{20,17}};
//汉字:"裂缝宽度为:"
int a12[393][2]={{24,23},{25,23},{34,23},{42,23},{47,23},{48,23},{49,23},{50,23},{51,23},{52,23},
{53,23},{57,23},{58,23},{59,23},{66,23},{67,23},{68,23},{69,23},{70,23},{74,23},{76,23},
{77,23},{78,23},{79,23},{86,23},{87,23},{88,23},{89,23},{92,23},{93,23},{103,23},{24,22},
{26,22},{32,22},{33,22},{34,22},{35,22},{39,22},{43,22},{45,22},{46,22},{60,22},{61,22},
{65,22},{70,22},{75,22},{80,22},{81,22},{84,22},{85,22},{94,22},{102,22},{104,22},{21,21},
{22,21},{24,21},{27,21},{31,21},{38,21},{39,21},{40,21},{44,21},{49,21},{62,21},{65,21},
{70,21},{75,21},{82,21},{83,21},{95,21},{105,21},{112,21},{113,21},{23,20},{24,20},{30,20},
{41,20},{42,20},{44,20},{49,20},{60,20},{63,20},{65,20},{68,20},{70,20},{75,20},{81,20},
{84,20},{96,20},{105,20},{112,20},{113,20},{24,19},{29,19},{31,19},{44,19},{46,19},{47,19},
{48,19},{49,19},{50,19},{51,19},{52,19},{53,19},{60,19},{63,19},{65,19},{68,19},{76,19},
{80,19},{85,19},{97,19},{102,19},{105,19},{25,18},{28,18},{32,18},{39,18},{44,18},{49,18},
{60,18},{64,18},{68,18},{76,18},{80,18},{86,18},{98,18},{102,18},{105,18},{20,17},{21,17},
{22,17},{23,17},{24,17},{25,17},{26,17},{27,17},{28,17},{29,17},{30,17},{31,17},{32,17},
{33,17},{34,17},{35,17},{38,17},{39,17},{40,17},{41,17},{42,17},{44,17},{47,17},{48,17},
{49,17},{50,17},{51,17},{52,17},{60,17},{64,17},{68,17},{76,17},{78,17},{79,17},{80,17},
{81,17},{82,17},{83,17},{84,17},{85,17},{86,17},{98,17},{101,17},{105,17},{112,17},{113,17},
{21,16},{22,16},{28,16},{33,16},{39,16},{44,16},{49,16},{60,16},{68,16},{76,16},{99,16},
{105,16},{112,16},{113,16},{23,15},{24,15},{27,15},{32,15},{34,15},{40,15},{42,15},{43,15},
{44,15},{47,15},{48,15},{49,15},{50,15},{51,15},{52,15},{60,15},{61,15},{62,15},{63,15},
{64,15},{65,15},{66,15},{67,15},{68,15},{76,15},{80,15},{81,15},{82,15},{83,15},{84,15},
{85,15},{99,15},{105,15},{25,14},{34,14},{41,14},{46,14},{47,14},{49,14},{52,14},{53,14},
{62,14},{66,14},{76,14},{80,14},{85,14},{100,14},{105,14},{20,13},{21,13},{24,13},{26,13},
{30,13},{34,13},{38,13},{39,13},{40,13},{41,13},{42,13},{48,13},{51,13},{58,13},{59,13},
{60,13},{61,13},{62,13},{63,13},{64,13},{65,13},{66,13},{67,13},{68,13},{69,13},{70,13},
{76,13},{77,13},{78,13},{79,13},{80,13},{81,13},{82,13},{83,13},{84,13},{85,13},{86,13},
{87,13},{88,13},{93,13},{94,13},{95,13},{96,13},{97,13},{98,13},{99,13},{100,13},{101,13},
{102,13},{103,13},{104,13},{105,13},{106,13},{22,12},{23,12},{27,12},{30,12},{34,12},{39,12},
{42,12},{46,12},{49,12},{50,12},{57,12},{62,12},{66,12},{69,12},{76,12},{80,12},{85,12},
{100,12},{105,12},{23,11},{24,11},{25,11},{26,11},{27,11},{30,11},{34,11},{40,11},{44,11},
{47,11},{48,11},{51,11},{58,11},{62,11},{66,11},{70,11},{76,11},{80,11},{85,11},{96,11},
{100,11},{24,10},{30,10},{34,10},{40,10},{44,10},{48,10},{49,10},{50,10},{51,10},{52,10},
{58,10},{59,10},{60,10},{61,10},{62,10},{63,10},{64,10},{65,10},{66,10},{67,10},{68,10},
{69,10},{70,10},{76,10},{77,10},{78,10},{79,10},{80,10},{81,10},{82,10},{83,10},{84,10},
{85,10},{86,10},{87,10},{88,10},{89,10},{96,10},{100,10},{21,9},{22,9},{23,9},{24,9},{25,9},
{26,9},{27,9},{28,9},{30,9},{34,9},{41,9},{43,9},{48,9},{64,9},{82,9},{95,9},{100,9},{27,8},
{34,8},{41,8},{48,8},{63,8},{81,8},{100,8}};
switch(nIndex)
{
case 0: //数字0
a = a0;
nCount = 44;
break;
case 1: //数字1
a = a1;
nCount = 30;
break;
case 2: //数字2
a = a2;
nCount = 36;
break;
case 3: //数字3
a = a3;
nCount = 36;
break;
case 4: //数字4
a = a4;
nCount = 37;
break;
case 5: //数字5
a = a5;
nCount = 31;
break;
case 6: //数字6
a = a6;
nCount = 43;
break;
case 7: //数字7
a = a7;
nCount = 26;
break;
case 8: //数字8
a = a8;
nCount = 44;
break;
case 9: //数字9
a = a9;
nCount = 42;
break;
case 10: //标点"."
a = a10;
nCount = 4;
break;
case 11: //单位:mm
a = a11;
nCount = 64;
break;
case 12: //汉字:"裂缝宽度为:"
a = a12;
nCount = 393;
break;
default:
break;
}
for(m=0; m<nCount; m++)
{
pImage[ (nY+a[m][1])*nWidth*3 + (nX+a[m][0])*3] =
255 ;
pImage[ (nY+a[m][1])*nWidth*3 + (nX+a[m][0])*3+1] =
255 ;
pImage[ (nY+a[m][1])*nWidth*3 + (nX+a[m][0])*3+2] =
255 ;
}
}
/****************************************************************************************/
//函数名称:PasteWord()
//功能:在图像指定位置添加指定数值
//参数:
// double f 要显示的浮点数值
// unsigned char *pImage 图像数据指针
// int nWidth, int nHeight 图象宽度、高度
// int nX, int nY 所贴字符左上角坐标
//返回值:无
/****************************************************************************************/
/*****************************************************************************/
//函数名称:PasteString()
//功能:在图像指定位置添加指定数值
//参数:
// double f 要显示的浮点数值
// unsigned char *pImage 图像数据指针
// int nWidth, int nHeight 图象宽度、高度
// int nX, int nY 所贴字符左上角坐标
//返回值:无
/*****************************************************************************/
void PasteString(unsigned char *pImage, int nWidth, int nHeight,
int nindex,int nX, int nY)
{
int a,b,c,d; //a,b,c,d代表个位数,小数点后1,2,3位
PasteWord(pImage, nWidth, nHeight, nindex, nX, nY);
PasteWord(pImage, nWidth, nHeight, a, nX+50, nY-1);
PasteWord(pImage, nWidth, nHeight, 10,nX+71, nY-1);
PasteWord(pImage, nWidth, nHeight, b, nX+108, nY-1);
PasteWord(pImage, nWidth, nHeight, c, nX+122, nY-1);
PasteWord(pImage, nWidth, nHeight, d, nX+136, nY-1);
PasteWord(pImage, nWidth, nHeight, 11, nX+150, nY+3);
}
/*****************************************************************************/
//函数名称:PasteResult()
//功能:在图像指定位置添加指定数值
//参数:
// double f 要显示的浮点数值
// unsigned char *pImage 图像数据指针
// int nWidth, int nHeight 图象宽度、高度
// int nX, int nY 所贴字符左上角坐标
//返回值:无
/*****************************************************************************/
void PasteResult(double f,
unsigned char *pImage, int nWidth, int nHeight,
int nX, int nY)
{
int a,b,c,d; //a,b,c,d代表个位数,小数点后1,2,3位
int Num = (int)(1000*f);
a = Num/1000;
b = (Num-a*1000)/100;
c = (Num-a*1000-b*100)/10;
d = (Num-a*1000-b*100-c*10);
PasteWord(pImage, nWidth, nHeight, 12, nX-25, nY);
PasteWord(pImage, nWidth, nHeight, a, nX, nY+30);
PasteWord(pImage, nWidth, nHeight, 10, nX+10,nY+30);
PasteWord(pImage, nWidth, nHeight, b, nX+20,nY+30);
PasteWord(pImage, nWidth, nHeight, c, nX+35,nY+30);
PasteWord(pImage, nWidth, nHeight, d, nX+50,nY+30);
PasteWord(pImage, nWidth, nHeight, 11, nX+65,nY+30);
}