DM二維碼識別庫DMDECODER的使用--MFC例程

    DM碼和QR碼是當今比較主流的二維碼,其中QR碼容量大,容量密度爲16kb,DM碼容量要小一點,可在僅僅25mm²的面積上編碼30個數字,可是DM碼的容錯率更高,因此實際的工業生產中常用DM碼做爲產品的標籤。數組

    DMDECODER是一款比較好用的DM碼解析軟件,包含有一個DLL和一個lib,使用這個庫也比較容易咱們先看組成函數

    

使用該庫第一步是導入庫路徑和庫函數以下編碼

//導入dll
#define DLL_EXPORT __declspec(dllexport)  

extern "C" DLL_EXPORT int _stdcall DataMatrix_decode(const char* filename); 
//    DataMatrix_decode_rt --> 對設備採集的圖像進行實時處理
//    imageData   : 指向圖像數據區的指針(24位位圖)
//    width       : 圖像寬度
//    height      : 圖像高度
extern "C" DLL_EXPORT int _stdcall DataMatrix_decode_rt(unsigned char* imageData, int width, int height); 
extern "C" DLL_EXPORT int _stdcall DataMatrix_output(unsigned char* message); 

而後解碼過程是這樣的spa

char* file = (char*)malloc(sourceFilePath.GetLength()+1);//待解碼圖片路徑
        for(int i = 0; i < sourceFilePath.GetLength();i++)
        {
            file[i] = sourceFilePath.GetAt(i);
        }
        file[sourceFilePath.GetLength()] = 0;
        int length = DataMatrix_decode(file); //解碼並返回碼字長度(解碼失敗則返回-1)
        if(length>0)
        {
            unsigned char* message = (unsigned char*)malloc(sizeof(char)*(length+1));
            DataMatrix_output(message);//將解碼碼字保存到數組中
            message[length] = 0;
            convertString.Empty();
            convertString.AppendFormat("%s",message);
            CString show;
            show.Empty();
            show = convertString.Left(convertString.GetLength()-12);
            ((CEdit*)GetDlgItem(IDC_EDIT_COVERT_RESULT))->SetWindowText(show);
            free(message);
        }    

完整的MFC工程以下.net

注意結果尾巴上的版權標誌tonxong.com去掉哦指針

工程路徑code

http://download.csdn.net/detail/dengrengong/8608187
相關文章
相關標籤/搜索