上位机MFC QRcode二维码解码实例源代码
例程效果如上图。
通过选择图片打开指令二维码图片就可以实现读取信息功能。
图片读取是例程目录 的二维码图片。
读取的代码为:
- 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);
- }
- }
复制代码 可以自己下载程序工程,查看源代码
源代码下载地址为:
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|