c生成帶logo的二維碼
❶ 二維碼生成原理c語言原理
雅虎上搜索出來的一篇文章,希望對你有幫助。沒有具體原理,你可以把庫下下來專研究,或者自己再搜索屬一下。地址:http://www.codeproject.com/Articles/593591/Simple-C-Cplusplus-QRCode-Library
❷ 誰有C語言或C++編寫的二維碼解碼軟體的源程序
1、二維碼有很多種標准,可以控制存儲數據的信息量,也可以控制容錯的數據量[使得部分污損的二維碼可以被正常讀取。通常的做法是調用二維碼設計方提供的組件,如果是自己生成二維碼,應該可以生成可以看起來很像的東西。
2、常式:
<pre name="code" class="cpp">int Fb_QrDisp(int iPenX,int iPenY,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->aucPixelDatasmalloc failed\n");
return-1;
}
PicZoom(&g_tOriginPixelDatas,&g_tZoomPixelDatas);
#if 0
printf("g_tZoomPixelDatas.iWidth=%d,g_tZoomPixelDatas.iHeight=%d\n", 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("\n");
#endif
*/
Disp_FixelPic(iPenX,iPenY,&g_tZoomPixelDatas);
return 0;
}
因為stmf429運行起來後內存不夠,這里不用申請內存再擴充放大二維碼數據的方法,而是直接描點。所以這里注釋掉了放大部分
e) 緊接著調用Disp_FixelPic根據qrcode進行描點
</pre><pre name="code" class="cpp"><pre name="code" class="cpp">void Disp_FixelPic(int iPenX,int iPenY,PT_PixelDatas ptPixelDatas)
{
int i=0,j=0;
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
GUI_SetPenSize(1);
for(i=0;i<ptPixelDatas->iHeight;i++)
{
for(j=0;j<ptPixelDatas->iWidth;j++)
{
if(ptPixelDatas->aucPixelDatas[i*ptPixelDatas->iHeight+j]&0x01)
{
//lcd_pixel_show(j+iPenX, i+iPenY,0x00);
GUI_SetColor(GUI_BLACK);
GUI_FillRect(j*8+iPenX, i*8+iPenY,j*8+8+iPenX, i*8+8+iPenY);
}
else
{
GUI_SetColor(GUI_WHITE);
//lcd_pixel_show(j+iPenX, i+iPenY, 0xffffff);
//GUI_DrawPoint(j*8+iPenX, i*8+iPenY);
GUI_FillRect(j*8+iPenX, i*8+iPenY,j*8+8+iPenX, i*8+8+iPenY);
}
}
}
}
這里注釋掉了原lcd描點函數,而是採用了stemwin提供的矩形填充函數
f) 編譯運行,能看到LCD顯示出二維碼。至此移植完畢
void Disp_FixelPic(int iPenX,intiPenY,PT_PixelDatas ptPixelDatas)
{
int i=0,j=0;
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
GUI_SetPenSize(1);
for(i=0;i<ptPixelDatas->iHeight;i++)
{
for(j=0;j<ptPixelDatas->iWidth;j++)
{
if(ptPixelDatas->aucPixelDatas[i*ptPixelDatas->iHeight+j]&0x01)
{
//lcd_pixel_show(j+iPenX,i+iPenY,0x00);
GUI_SetColor(GUI_BLACK);
GUI_FillRect(j*8+iPenX, i*8+iPenY,j*8+8+iPenX, i*8+8+iPenY);
}
else
{
GUI_SetColor(GUI_WHITE);
//lcd_pixel_show(j+iPenX,i+iPenY, 0xffffff);
//GUI_DrawPoint(j*8+iPenX, i*8+iPenY);
GUI_FillRect(j*8+iPenX, i*8+iPenY,j*8+8+iPenX, i*8+8+iPenY);
}
}
}
}
❸ 為什麼我買了一款香奈兒香水沒有雙c標志呢是我朋友最近去香港帶回來的980元,而且二維碼也掃不到
有圖嗎?980元哦,港幣嗎?我在香港買過5號100ml,也不到900元rmb啊。二維碼不能說明絕對證明什麼問題。
❹ 求二維碼的生成演算法 C語言
二維碼有很多種標准,可以控制存儲數據的信息量,也可以控制容錯的數據量[使得部內分污損的二維容碼可以被正常讀取]
通常的做法是調用二維碼設計方提供的組件,像你這個准備自己生成二維碼,應該可以生成可以看起來很像的東西。
但是估計其餘的讀碼工具都讀取不出來。
❺ 如何用C代碼生成二維碼
自己用C/C++生成二維碼是比較復雜的。
如果實在需要,也有時間,不妨看看內開源的 ZXing 裡面有生成二維碼的容演算法
其中有C/C++的移植
如果是商業需要,而又沒有時間去研究,不妨采購商用的二維碼生成SDK
網路一下有很多。
❻ 二維碼生成程序C語言源代碼
1、二維碼有很多種標准,可以控制存儲數據的信息量,也可以控制容錯的數據量專[使得部分污損的屬二維碼可以被正常讀齲通常的做法是調用二維碼設計方提供的組件,如果是自己生成二維碼,應該可以生成可以看起來很像的東西。