phpqrcode 生成图片显示出错

16 篇文章 0 订阅

本文转载 http://blog.csdn.net/ohmyauthentic/article/details/45362055

phpqrcode 的使用教程我看的百度经验的http://jingyan.baidu.com/article/c33e3f48acfa5aea15cbb58d.html

然而按照教程做,发现我并不是要图片保存下来,图片保存没有问题,但是我只要显示图片而已,很多教程的抄来抄去的,没有降到问题的关键,为何直接显示不出来

首先加个输出类型header('Content-Type: image/png');

其次加个清除缓存ob_clean()

<?php   
header('Content-Type: image/png');  
//引入phpqrcode库文件  
include('phpqrcode.php');   
// 二维码数据   
$picUrl = 'www.baidu.com';     //二维码扫描出的链接  
ob_clean();  
QRcode::png($picUrl,false,'L',4);    

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

这样就可以生成二维码了,实际上在png这个方法里还有几个参数需要使用。

  第一个参数$text,就是上面代码里的URL网址参数,

  第二个参数$outfile默认为否,不生成文件,只将二维码图片返回,否则需要给出存放生成二维码图片的路径

  第三个参数$level默认为L,这个参数可传递的值分别是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)。这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比。

  利用二维维码的容错率,我们可以将头像放置在生成的二维码图片任何区域。

  第四个参数$size,控制生成图片的大小,默认为4

  第五个参数$margin,控制生成二维码的空白区域大小

  第六个参数$saveandprint,保存二维码图片并显示出来,$outfile必须传递图片路径。

  大家可以根据自己的需求来设置生成二维码的参数。



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Windows API 中的 GDI+ 库来实现这个功能。以下是一个简单的示例程序,可以参考一下: ```c++ #include <windows.h> #include <gdiplus.h> #pragma comment (lib,"Gdiplus.lib") LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 初始化 GDI+ Gdiplus::GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); // 创建窗口 HWND hwnd; WNDCLASS wc = { 0 }; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.lpszClassName = L"QRCodeWindow"; if (!RegisterClass(&wc)) return 1; hwnd = CreateWindow(wc.lpszClassName, L"QR Code", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, hInstance, NULL); if (!hwnd) return 2; ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); // 创建 GDI+ 图片 Gdiplus::Bitmap bitmap(L"qrcode.png", FALSE); // 进入消息循环 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } // 释放 GDI+ Gdiplus::GdiplusShutdown(gdiplusToken); return (int)msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); // 使用 GDI+ 绘制图片 Gdiplus::Graphics graphics(hdc); Gdiplus::Bitmap bitmap(L"qrcode.png", FALSE); graphics.DrawImage(&bitmap, 0, 0); EndPaint(hwnd, &ps); break; } case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, message, wParam, lParam); } return 0; } ``` 这个程序会创建一个窗口,然后在窗口上显示指定的 QR Code 图片。你可以根据需要修改窗口的大小和位置,以及图片的文件名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值