資源簡介
QR二維碼解碼C++源代碼,不含DLL中間件,全套源程序,原代碼全中文注釋。
可以選擇輸入8位或24位BMP格式QR碼圖像,輸出(包括版本號和糾錯等級的)QR碼譯碼信息。
支持QR碼中文國家標準,是研究QR碼譯碼技術的入門樣本。
VS2010編譯環境調試通過(工程名:QRcodeDecoder.sln),支持重新編譯,直接可用。
編譯后,可執行程序存放在..\release\文件夾下,程序名:QRcodeDecoder.exe
代碼片段和文件信息
//?AlignmentPattern.cpp:?implementation?of?the?AlignmentPattern?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“QRcodeDecoder.h“
#include?“AlignmentPattern.h“
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
AlignmentPattern::AlignmentPattern()
{
}
AlignmentPattern::~AlignmentPattern()
{
}
//校正圖形檢測
void?AlignmentPattern::findAlignmentPattern(BYTE?**?mybitmap?int?mynWidth?int?mynHeight?FinderPattern?*?finderPattern?int?myDECIMAL_POINT)?
{
DECIMAL_POINT=myDECIMAL_POINT;
bitmap=mybitmap;
nWidth=mynWidth;
nHeight=mynHeight;
m_finderPattern=finderPattern;
getLogicalCenter(m_finderPattern);
logicalDistance?=?logicalCenters[1][0].x?-?logicalCenters[0][0].x;
//With?it?converts?in?order?to?handle?in?the?same?way
getCenter();
//return?new?AlignmentPattern(centers?logicalDistance);
}
//get?logical?center?coordinates?of?each?alignment?patterns
void?AlignmentPattern::getLogicalCenter(FinderPattern?*?finderPattern)
{
????int?i?;
//get?logical?center?coordinates?of?each?alignment?patterns
int?version?=?finderPattern->m_version;
int?logicalSeedsCnt;
logicalSeedsCnt=QR_VersonInfo[version].ncAlignPoint+1;
int?*?logicalSeeds=new?int[logicalSeedsCnt];
logicalSeeds[0]=6;
for(i=1;i logicalSeeds[i]=QR_VersonInfo[version].nAlignPoint[i-1];
logicalCenters?=?new?Point?*[logicalSeedsCnt];
for(i=0;i logicalCenters[i]=new?Point[logicalSeedsCnt];
//Point[][]?logicalCenters?=?new?Point[logicalSeeds.length][logicalSeeds.length];
//create?real?relative?coordinates
for?(int?col?=?0;?col? {
for?(int?row?=?0;?row? {
logicalCenters[row][col]?=?Point(logicalSeeds[row]?logicalSeeds[col]);
}
}
logicalCentersCnt=logicalSeedsCnt;
}
void?AlignmentPattern::getCenter()?
{
int?moduleSize?=?m_finderPattern->m_moduleSize[UL];
int?*?angle=m_finderPattern->m_sincos;
Axis?axis?=?Axis(angle?moduleSize?DECIMAL_POINT);
m_centersCnt?=?logicalCentersCnt;
m_centers?=?new?Point?*[m_centersCnt];
for(int?i=0;i m_centers[i]=new?Point[m_centersCnt];
//Point[][]?centers?=?new?Point[m_centersCnt][m_centersCnt];
axis.setOrigin(m_finderPattern->m_center[UL]);
m_centers[0][0]?=?axis.translate(3?3);
axis.setOrigin(m_finderPattern->m_center[UR]);
m_centers[m_centersCnt?-?1][0]?=?axis.translate(-3?3);
axis.setOrigin(m_finderPattern->m_center[DL]);
m_centers[0][m_centersCnt?-?1]?=?axis.translate(3?-3);
Point?tmpPoint=m_centers[0][0];
for?(int?y?=?0;?y? {
for?(int?x?=?0;?x? {
if?((x==0?&&?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????16402??2016-08-01?00:08??ContentDecoder.cpp
?????文件???????2391??2016-07-28?00:42??ContentDecoder.h
?????文件??????24137??2016-08-01?00:08??FinderPattern.cpp
?????文件???????1684??2016-07-30?00:57??FinderPattern.h
?????文件???????3292??2008-04-23?22:02??Galois.cpp
?????文件????????950??2008-04-22?23:35??Galois.h
?????文件???????3009??2016-07-28?00:09??Line.cpp
?????文件???????1110??2008-05-03?08:47??Line.h
?????文件???????1206??2016-07-28?00:09??Point.cpp
?????文件????????788??2008-05-02?20:39??Point.h
?????文件??????38864??2016-07-30?13:24??QRcodeDecoder.aps
?????文件???????2197??2016-07-26?01:20??QRcodeDecoder.clw
?????文件???????2161??2008-03-16?11:33??QRcodeDecoder.cpp
?????文件???????5596??2016-07-26?11:55??QRcodeDecoder.dsp
?????文件????????551??2008-03-16?11:33??QRcodeDecoder.dsw
?????文件???????1401??2008-03-16?11:33??QRcodeDecoder.h
?????文件?????189440??2016-07-26?01:20??QRcodeDecoder.ncb
?????文件??????54784??2016-07-26?01:20??QRcodeDecoder.opt
?????文件???????3095??2016-07-26?01:18??QRcodeDecoder.plg
?????文件???????5600??2016-07-30?13:24??QRcodeDecoder.rc
?????文件??122966016??2018-05-14?17:54??QRcodeDecoder.sdf
?????文件????????892??2016-08-01?00:08??QRcodeDecoder.sln
????..A..H.?????26112??2018-05-14?17:54??QRcodeDecoder.suo
?????文件???????9052??2016-07-30?13:24??QRcodeDecoder.vcxproj
?????文件???????3860??2016-07-26?01:27??QRcodeDecoder.vcxproj.filters
?????文件????????143??2016-07-26?01:27??QRcodeDecoder.vcxproj.user
?????文件???????8436??2016-08-01?00:08??QRcodeDecoderDlg.cpp
?????文件???????1992??2016-07-31?23:46??QRcodeDecoderDlg.h
?????文件??????17034??2016-08-01?00:08??QRcodeImage.cpp
?????文件???????1703??2016-08-01?00:08??QRcodeImage.h
............此處省略29個文件信息
評論
共有 條評論