工控编程吧
标题:
上位机MFC QRcode二维码解码实例源代码
[打印本页]
作者:
qq263946146
时间:
2019-9-22 12:29
标题:
上位机MFC QRcode二维码解码实例源代码
(, 下载次数: 0)
上传
点击文件名下载附件
例程效果如上图。
通过选择图片打开指令二维码图片就可以实现读取信息功能。
图片读取是例程目录 的二维码图片。
读取的代码为:
void CQRcodeDecoderDlg::OnButtonFile()
{
// TODO: Add your control notification handler code here
//选择文件对话框
CString FilePathName;
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"支持的格式 (*.bmp)|*.bmp|All Files (*.*)|*.*||", NULL );
/*
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"支持的格式 (*.bmp *.jpg)|*.bmp;*.jpg;*.jpeg|All Files (*.*)|*.*||", NULL );
*/
if(dlg.DoModal()==IDOK)
{
//获取选择的文件的路径显示
FilePathName=dlg.GetPathName();
GetDlgItem(IDC_EDIT_FILE)->SetWindowText(FilePathName);
QR_image = new QRcodeImage(FilePathName);
QR_image->GetImageData();
m_nVersion = QR_image->finderPattern->m_version;
m_nCodeSize = m_nVersion * 4 +17;
for(int i=0;i<m_nCodeSize;i++)
for(int j=0;j<m_nCodeSize;j++)
m_CodeData[i][j]=QR_image->bitMatrix[i][j];
//缩放图像,显示在对话框中
nShowSize=120;
CDC * pDC=this->GetDC();
pDC->StretchBlt(135, 45, nShowSize, nShowSize, QR_image->m_pDC, 0, 0, QR_image->nWidth, QR_image->nHeight, SRCCOPY);
flag_draw=true;
//解码
QR_Decode = new ContentDecoder;
QR_Decode->DecodeData(m_nCodeSize,m_nVersion,m_CodeData);
//显示结果
GetDlgItem(IDC_EDIT_TEXT)->SetWindowText(QR_Decode->m_strData);//"由于解码功能尚未完成,暂时无法显示!!!"
char s[10];
itoa(QR_Decode->m_nVersion,s,10);
GetDlgItem(IDC_STATIC_VERSION)->SetWindowText("版本号:"+(CString)s);
CString str;
switch(QR_Decode->m_nLevel)
{
case QR_LEVEL_L:str="L(%7)";break;
case QR_LEVEL_M:str="M(%15)";break;
case QR_LEVEL_Q:str="Q(%25)";break;
case QR_LEVEL_H:str="H(%30)";break;
}
GetDlgItem(IDC_STATIC_LEVEL)->SetWindowText("纠错等级:"+str);
}
}
复制代码
可以自己下载程序工程,查看源代码
源代码下载地址为:
(, 下载次数: 2)
上传
点击文件名下载附件
[MFC408]1[/MFC408]
[halcon]1[/halcon]
[weixinlianxi]1[/weixinlianxi]
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4