• 大小: 20KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-04-11
  • 语言: C/C++
  • 标签: 二维码  QRCode  

资源简介

C++builder 二维码生成源码, 具体源码在QR_Encode.h QR_Encode.cpp中, main.cpp中是具体使用方法, void __fastcall TForm1::Button1Click(TObject *Sender) { pQR_Encode=new CQR_Encode(); int nLevel =ComboBox1->ItemIndex;//纠错等级 int nVersion =StrToInt(ComboBox2->Text);//版本 bool bAutoExtent =true;//是否自动扩展 int nMasking

资源截图

代码片段和文件信息

//---------------------------------------------------------------------------

#include 
#pragma hdrstop

#include “mian.h“
#include “math.hpp“
#include “QR_Encode.h“
#include “graphics.hpp“

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource “*.dfm“
TForm1 *Form1;
CQR_Encode *pQR_Encode;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall  TForm1::draw_box(TImage *IMGint xint yint sizeint color)
{
        if(color==0)//White
                IMG->Canvas->Pen->Color=clWhite;
        if(color==1)//Black
                IMG->Canvas->Pen->Color=clBlack;

        for(int i=0;i        {
                IMG->Canvas->MoveTo(x+iy);
                IMG->Canvas->LineTo(x+iy+size);
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(Tobject *Sender)
{
pQR_Encode=new CQR_Encode();

        int nLevel =ComboBox1->ItemIndex;//纠错等级
int nVersion =StrToInt(ComboBox2->Text);//版本
bool bAutoExtent =true;//是否自动扩展
int nMaskingNo = StrToInt(ComboBox3->Text);//掩码模式

AnsiString strEncodeData;//memo中的编码字符
        strEncodeData=Memo1->Text;

int i j;
int size=3;
//二维码矩阵的主调用函数
m_bDataEncoded = pQR_Encode->EncodeData(nLevel nVersion bAutoExtent nMaskingNo strEncodeData.c_str());

Image1->Width=(pQR_Encode->m_nSymbleSize*size+8);
Image1->Height=(pQR_Encode->m_nSymbleSize*size+8);

if (m_bDataEncoded)
{
int startx = QR_MARGIN;

//绘制二维码
for (i = 0; i < pQR_Encode->m_nSymbleSize; ++i)
{
int starty = QR_MARGIN;
for (j = 0; j < pQR_Encode->m_nSymbleSize; ++j)
{
if (pQR_Encode->m_byModuleData[i][j])
draw_box(Image1startxstartysize1);
                                else
draw_box(Image1startxstartysize0);
starty += size;
}
startx += size;
}
}
else
{
                ShowMessage(“wrong!!“);
}
delete pQR_Encode;
}


//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseMove(Tobject *Sender TShiftState Shift
      int X int Y)
{
        Label1->Caption=“(“+AnsiString(X)+““+AnsiString(Y)+“)“;
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button2Click(Tobject *Sender)
{
        Image1->Picture->SaveToFile(“QR.png“);
}
//---------------------------------------------------------------------------


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2800  2019-08-12 11:18  mian.cpp

     文件       2787  2017-04-18 18:19  mian.dfm

     文件       1451  2017-04-18 18:18  mian.h

     文件      41809  2019-08-12 11:02  Project1.cbproj

     文件       1192  2019-08-12 11:02  Project1.cbproj.local

     文件        899  2017-04-18 18:20  Project1.cpp

     文件        166  2019-08-12 11:19  Project1.stat

     文件         40  2017-04-18 18:15  Project1PCH1.h

     文件      68238  2015-10-07 23:38  QR_Encode.cpp

     文件       5081  2015-10-07 16:45  QR_Encode.h

----------- ---------  ---------- -----  ----

               124463                    10


评论

共有 条评论