當前位置:首頁 » 操作系統 » c二維碼生成源碼

c二維碼生成源碼

發布時間: 2022-02-25 22:31:20

❶ 求二維碼的生成演算法 C語言

二維碼有很多種標准,可以控制存儲數據的信息量,也可以控制容錯的數據量[使得部分污損的二維碼可以被正常讀取]

通常的做法是調用二維碼設計方提供的組件,像你這個准備自己生成二維碼,應該可以生成可以看起來很像的東西。

但是估計其餘的讀碼工具都讀取不出來。

❷ 誰有C語言或C++編寫的二維碼解碼軟體的源程序

這個程序是運行在什麼平台的?
二維碼的輸入來自攝像頭還是來自圖片?

目前來看,網上有一些開源的跨平台的開發包,需要安裝相應的庫才能使用。不可能像你想像的那麼簡單給你發個源代碼你就立刻能用了。

比較實用的一個開發包是Zbar,開源不收費。親測在Win7,WinXP環境下可以成功編譯運行。
http://zbar.sourceforge.net
去這里下載他的SDK,裡面有相應的常式,根據你的具體運行環境和具體的需要來修改吧。
祝你好運

❸ c#生成PDF417二維碼源代碼

try
{
//遍歷DataSet載入的信息,如何某一行被選中,進入列印
for(int i=0;i<listView1.Items.Count;i++)
{
if (listView1.Items[i].Checked == true)
{
string PrintString;
string Gut;
string Spare;
string AssDesc;
string Code = listView1.Items[i].SubItems[0].Text.ToString();
string Desc = listView1.Items[i].SubItems[1].Text.ToString();
string Class = listView1.Items[i].SubItems[2].Text.ToString();
string Lot = listView1.Items[i].SubItems[3].Text.ToString();
string Uom = listView1.Items[i].SubItems[4].Text.ToString();

//DataGrid中獲取焦點及其列的值
//int rowID = this.dataGrid1.CurrentRowIndex;
//string Code = dataGrid1[rowID, 0].ToString();
//string Desc = dataGrid1[rowID, 1].ToString();
//string Class = dataGrid1[rowID, 2].ToString();
//string Lot = dataGrid1[rowID, 3].ToString();
//string Uom = dataGrid1[rowID, 4].ToString();
string RkTime = "";
string YouXQ = "";
string GongYS = "";
string Grade = "";
string Kind = "";
string Top = "";
string Low = "";

//當有列印任務時設置變數為TRUE
isPrint = true;
//Damo中掃描出來的信息,當信息不足180個字元時,填入空格,形成固定大小的列印編碼圖形
Gut = "編碼:" + Code + ",批次:" + Lot + ",名稱:" + Desc + ",單位:" + Uom + ",入庫時間:" + RkTime + ",有效期:"
+ YouXQ + ",供貨商:" + GongYS + ",物資類別: " + Class + ",存儲等級:" + Grade + ",存儲性質:"
+ Kind + ",低儲:" + Low + ",高儲:" + Top;
while (Gut.Length < 165)
{
Gut = Gut + " " + " ";
}
Gut = Gut + " B" + "\r\n";
AssDesc = "T180 55 0 552 208 ";
//判斷備件名稱字元長度,執行換行操作(SPAR=14字元後截取的字元)
if (Desc.Length > 14)
{
if (Desc.Length > 34)
{
if (Desc.Length > 54)
{
Spare = Desc.Substring(14, Desc.Length - 14);
AssDesc = "" + AssDesc + Desc.Substring(0, 14) + "\r\n" + "T180 55 0 650 176 " + Spare.Substring(0, 20) + "\r\n"
+ "T180 55 0 650 145 " + Spare.Substring(20, 20) + "\r\n";
}
else
{
Spare = Desc.Substring(14, Desc.Length - 14);
AssDesc = "" + AssDesc + Desc.Substring(0, 14) + "\r\n" + "T180 55 0 650 176 " + Spare.Substring(0, 20) + "\r\n"
+ "T180 55 0 650 145 " + Spare.Substring(20) + "\r\n";
}

}
else
{
Spare = Desc.Substring(14, Desc.Length - 14);
AssDesc = "" + AssDesc + Desc.Substring(0, 14) + "\r\n" + "T180 55 0 650 176\r\n" + Spare + " " + "\r\n";
}
}
else
{
AssDesc = "T180 55 0 552 208 " + Desc + " " + "\r\n";
}
PrintString = "! 0 200 200 344 1\r\n" +
"LABEL\r\n" +
"CONTRAST 0\r\n" +
"TONE 0\r\n" +
"SPEED 5\r\n" +
"PAGE-WIDTH 656\r\n" +
"GAP-SENSE 50\r\n" +
// Set Language then show chinese!
"COUNTRY CHINA\r\n" +
"B PDF-417 18 1 XD 2 YD 7 C 5 S 1\r\n" +
"" + Gut + "" +
"ENDPDF\r\n" +
"SETMAG 2 2\r\n" +
"T180 55 0 650 245 編碼:\r\n" +
"SETMAG 1 2\r\n" +
"T180 7 0 557 253 " + Code + "\r\n" +
"SETMAG 2 2\r\n" +
"T180 55 0 650 207 名稱:\r\n" +
"SETMAG 1 2\r\n" +
"" + AssDesc + "" +
"SETMAG 2 2\r\n" +
"T180 55 0 650 108 批次:\r\n" +
"SETMAG 1 2\r\n" +
"T180 7 0 550 113 " + Lot + "\r\n" +
"SETMAG 2 2\r\n" +
"T180 55 0 650 71 有效期:\r\n" +
"SETMAG 1 2\r\n" +
"T180 7 0 530 76 " + YouXQ + "\r\n" +
"SETMAG 2 2\r\n" +
"T180 55 0 650 32 低儲:\r\n" +
"SETMAG 1 2\r\n" +
"T180 7 0 565 37 " + Low + "\r\n" +
"SETMAG 2 2\r\n" +
"T180 55 0 500 32 高儲:\r\n" +
"SETMAG 1 2\r\n" +
"T180 7 0 415 37 " + Top + "\r\n" +
"FORM\r\n" +
"PRINT\r\n";
if (this.SendMyMsg(PrintString) == false)
{
break;
//this.SendMyMsg(PrintString);
}
//else
//{
// Lianjie = true;
// break;
//}
}
}
if (!isPrint)
MessageBox.Show("請選擇要列印的備件!");
}
catch(Exception ee)
{
MessageBox.Show(ee.Message.ToString());
}
#endregion

}

---------------------------------------------------------------------
我幾年前寫的,自己修改一下吧,准對可以實現的

❹ 二維碼生成程序C語言源代碼

1、二維碼有很多種標准,可以控制存儲數據的信息量,也可以控制容錯的數據量[使得部分污損的二維碼可以被正常讀齲通常的做法是調用二維碼設計方提供的組件,如果是自己生成二維碼,應該可以生成可以看起來很像的東西。

❺ 誰有C語言編寫的二維碼的源代碼

int strcpy(char *s1,const char *s2);
開辟一個緩沖區,比如
char buff[100];//假設你的字元串不超過這么多

而你的而為數組為
char **argv;
其中argv[0] = "this is the first string";
argv[1] = "this is the seconde string";

你只須調用如下
strcpy(buff,argv[0]);
strcpy(argv[0],argv[1]);
strcpy(argv[1],buff);

一下是完整代碼,並測試過
#include <stdio.h>
#include <string.h>

char argv[2][100]=;
// 存儲字元串的二維數組,每個字元串最長為99個位元組
char buff[100];
//緩沖區
int main()
{
printf("轉換前:\n");
printf("argv[0] = %s\n",argv[0]);
printf("argv[1] = %s\n",argv[1]);

strcpy(buff,argv[0]);
strcpy(argv[0],argv[1]);
strcpy(argv[1],buff);

printf("轉換後:\n");
printf("argv[0] = %s\n",argv[0]);
printf("argv[1] = %s\n",argv[1]);

return 0;
}
vae.la

❻ 誰有二維碼生成的源代碼(java版本)的,能提供些嗎

可以考慮使用圖形繪制來解決二維碼的生成問題,使用實例如下:

生成二維碼
packagenet.qrcode;

importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.IOException;
importjava.io.OutputStream;

importjavax.imageio.ImageIO;

importcom.google.zxing.common.BitMatrix;

{

//私有不可更改的變數:生成二維碼圖片的顏色
privatestaticfinalintBLACK=0xFF000000;
privatestaticfinalintWHITE=0xFFFFFFFF;
//空的構造方法
publicMartixToImageWriter(){
//TODOAuto-generatedconstructorstub
}
/**
*靜態方法
*BufferedImage是Image的一個子類,BufferedImage生成的圖片在內存里有一個圖像緩沖區,利用這個緩沖區我們可以很方便的操作這個圖片,
*通常用來做圖片修改操作如大小變換、圖片變灰、設置圖片透明或不透明等。
*@parammatrix編碼形式
*@return
*/
(BitMatrixmatrix)
{
//圖片的寬度和高度
intwidth=matrix.getWidth();
intheight=matrix.getHeight();
//BufferedImage.TYPE_INT_RGB將圖片變為什麼顏色
BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
for(intx=0;x<width;x++)
{
for(inty=0;y<height;y++)
{
image.setRGB(x,y,matrix.get(x,y)?BLACK:WHITE);
}
}
returnimage;
}
/**
*靜態方法用於生成圖片
*@parammatrix編碼形式
*@paramformat圖片類型
*@paramfile文件(圖片路徑,圖片名稱)
*@throwsIOException
*/
publicstaticvoidwriteToFile(BitMatrixmatrix,Stringformat,Filefile)throwsIOException
{
BufferedImageimage=toBufferedImage(matrix);
if(!ImageIO.write(image,format,file))
{
thrownewIOException("Couldnotwriteanimageofformat"+format+"to"+file);
}
}
/**
*輸出
*@parammatrix
*@paramformat
*@paramstream
*@throwsIOException
*/
publicstaticvoidwriteToStream(BitMatrixmatrix,Stringformat,OutputStreamstream)throwsIOException
{
BufferedImageimage=toBufferedImage(matrix);
if(!ImageIO.write(image,format,stream))
{
thrownewIOException("Couldnotwriteanimageofformat"+format);
}
}
}

測試二維碼是否生成成功
packagenet.qrcode;

importjava.io.File;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;

importcom.google.zxing.BarcodeFormat;
importcom.google.zxing.EncodeHintType;
importcom.google.zxing.MultiFormatWriter;
importcom.google.zxing.common.BitMatrix;

publicclassTwoDimensionCode{

publicstaticvoidmain(String[]args){
try
{
System.out.println("請輸入您要生成二維碼的信息");
Scannerinput=newScanner(System.in);
Stringcontent=input.next();
Stringpath="C:\Users\Administrator\Desktop\二維碼圖片庫";
=newMultiFormatWriter();
Maphints=newHashMap();
hints.put(EncodeHintType.CHARACTER_SET,"UTF-8");
//按照指定的寬度,高度和附加參數對字元串進行編碼
//生成二維碼
BitMatrixbitMatrix=multiFormatWrite.encode(content,BarcodeFormat.QR_CODE,400,400,hints);
Filefile1=newFile(path,userId+".jpg");
//寫入文件
MartixToImageWriter.writeToFile(bitMatrix,"jpg",file1);
System.out.println("二維碼圖片生成成功!");
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}

❼ 條碼生成C語言編程

我可以給你個思路,第一步去找到你要的二維碼的規范,第二步把數據按照規范轉化為二維數組,第三步,把二維數組按照圖形文件的規范用二進制儲存為圖片
參考資料:http://blog.csdn.net/dekko/article/details/6121899
http://blog.csdn.net/dekko/article/details/6122239
http://blog.csdn.net/ryfdizuo/article/details/41250775
http://blog.csdn.net/carson2005/article/details/7871238

❽ 用C語言製作微信二維碼生成器

用libqrencode庫使用方法,該庫來自FUKUCHI Kentaro,用於由QRCode文字生成bmp文件。網上有該庫的相關信息,但沒有簡單的例子展示如何使用它。在本項目中,展示了該庫使用時出現的問題的解決方法。編譯時直接引用源代碼,不會有鏈接沖突問題。

這個一句兩句說不清楚啊,到我群里討論 look at my n a m e

❾ 如何用C語言實現顯示二維碼

intFb_QrDisp(intiPenX,intiPenY,QRcode*pQRcode)
{
T_PixelDatasg_tOriginPixelDatas;
T_PixelDatasg_tZoomPixelDatas;
//intiZoom;
inti;

g_tOriginPixelDatas.iWidth=pQRcode->width;
g_tOriginPixelDatas.iHeight=pQRcode->width;
g_tOriginPixelDatas.iLineBytes=g_tOriginPixelDatas.iWidth;
g_tOriginPixelDatas.aucPixelDatas=pQRcode->data;
/*
if(pQRcode->version<=1)
{
iZoom=2;
}
else
{
iZoom=2;

}
g_tZoomPixelDatas.iWidth=pQRcode->width*iZoom;
g_tZoomPixelDatas.iHeight=pQRcode->width*iZoom;
g_tZoomPixelDatas.iLineBytes=g_tZoomPixelDatas.iWidth;
g_tZoomPixelDatas.aucPixelDatas=malloc(g_tZoomPixelDatas.iWidth*
g_tZoomPixelDatas.iHeight);

if(g_tZoomPixelDatas.aucPixelDatas==NULL)
{
printf("g_tZoomPixelDatas->aucPixelDatasmallocfailed ");
return-1;
}

PicZoom(&g_tOriginPixelDatas,&g_tZoomPixelDatas);
#if0
printf("g_tZoomPixelDatas.iWidth=%d,g_tZoomPixelDatas.iHeight=%d ",
g_tZoomPixelDatas.iWidth,g_tZoomPixelDatas.iHeight);


for(i=0;i<(g_tZoomPixelDatas.iWidth*g_tZoomPixelDatas.iHeight);i++)
{
printf("0x%x,",g_tZoomPixelDatas.aucPixelDatas[i]);
}
printf(" ");

#endif
*/
Disp_FixelPic(iPenX,iPenY,&g_tZoomPixelDatas);
return0;
}

需要使用Qrcode

❿ 如何用C代碼生成二維碼

自己用C/C++生成二維碼是比較復雜的。
如果實在需要,也有時間,不妨看看開源的 ZXing 裡面有生成二維碼的演算法
其中有C/C++的移植
如果是商業需要,而又沒有時間去研究,不妨采購商用的二維碼生成SDK
網路一下有很多。

熱點內容
如何查已有網路的密碼 發布:2024-09-22 03:31:30 瀏覽:893
驅動forlinux 發布:2024-09-22 03:15:50 瀏覽:788
凌派車有哪些配置 發布:2024-09-22 03:15:00 瀏覽:748
壓縮文件為什麼打不開 發布:2024-09-22 03:09:13 瀏覽:645
我的世界緩存清理 發布:2024-09-22 03:09:10 瀏覽:644
鬥地主癩子演算法 發布:2024-09-22 03:08:09 瀏覽:119
解釋與編譯的區別 發布:2024-09-22 02:58:26 瀏覽:89
示教系統有哪些配置 發布:2024-09-22 02:47:13 瀏覽:261
速騰標配是什麼配置 發布:2024-09-22 02:30:36 瀏覽:584
oracle資料庫xe 發布:2024-09-22 02:12:45 瀏覽:444