资讯专栏INFORMATION COLUMN

Qr Code 二维码的生成与解码

lindroid / 3066人阅读

版权声明:原创文章欢迎转载,不过要记得说明出处

生成二维码

下载phpqrcode

不带logo的二维码
    require_once("../phpqrcode/qrlib.php");
    
    // 图片名, 默认为false,直接输出
    $fileName = "qr.jpg";
    // 纠错级别:L、M、Q、H      
    $level    = QR_ECLEVEL_L;   
    // size, 默认为3
    $size     = 5;
    // margin, 默认为4
    $margin   = 4;
    
    // qr.jpg图片生成到根目录
    QRcode::png("哈哈!刷上了就赶紧收藏点赞·", $fileName, $level, $size, $margin);
    
    // display根目录下的qr.jpg
    echo "";die;
    
    

带logo的二维码
    
    require_once("../phpqrcode/qrlib.php");
    
    // 图片名, 默认为false,直接输出
    $fileName = "qr.jpg";
    // 纠错级别:L、M、Q、H      
    $level    = QR_ECLEVEL_L;   
    // size, 默认为3
    $size     = 5;
    // margin, 默认为4
    $margin   = 4;
    
    // qr.jpg图片生成到根目录
    QRcode::png("哈哈!刷上了就赶紧收藏点赞·", $fileName, $level, $size, $margin);
    
    // display根目录下的qr.jpg
    //echo "";die;
    
    $logo = "C:UsersAdministratorDesktopfile4.jpg";
    
    // 上一步类QRcode的png方法中二维码已经生成并且保存在根目录,直接用$fileName就代表其图片路径
    $qr   = imagecreatefromstring(file_get_contents($fileName));    
    $logo = imagecreatefromstring(file_get_contents($logo));
    
    if($logo && $qr) {
        $qrWidth      = imagesx($qr);    
        $qrHeight     = imagesy($qr);
        $logoWidth    = imagesx($logo);
        $logoHeight   = imagesy($logo);
        
        $logoQrWidth  = $qrWidth / 9;    
        $scale = $logoWidth / $logoQrWidth;    
        $logoQrHeight = $logoHeight / $scale;
        
        // 使logo居中
        $fromWidth  = ($qrWidth - $logoQrWidth) / 2;
        $fromHeight = ($qrHeight - $logoQrHeight) / 2;
        // 组合图片  
        imagecopyresampled($qr, $logo, $fromWidth, $fromHeight, 0, 0, $logoQrWidth, $logoQrHeight, $logoWidth, $logoHeight);
        
        header("Content-type: image/jpg");
        // 直接输出图像流
        imagejpeg($qr);
    }
    

解码二维码

下载decoder,需要使用composer去加载类。如果不想使用composer的话可以下载Zxing

    require_once("../Zxing/QrReader.php");
    $qrcode = new QrReader("qr_logo.jpg");
    $text = $qrcode->text();
    
    // 输出
    echo $text;die;
    
    

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23033.html

相关文章

  • PHP-生成维码qr-code

    摘要:生成二维码首先我们需要在项目中引入类文件,现在基本上是通过命名空间路径的方式进行自动加载,它的位置位于扩展根目录的文件中。 1.为什么要写这篇文章 最近做项目要生成二维码让用户做跳转,搜索了一下发现网上都是用一个叫做 phpqrcode 的扩展,在 github 上搜索了一下发现这个项目作者在6年前就已经没有维护了,百度的文章也是千篇一律的你复制我的我复制你的,所以只好在 github...

    endless_road 评论0 收藏0
  • PHP 图片、文字合成

    摘要:查询用户信息已经合成的不再重复生成生成原始二维码图网络路径原始二维码图的绝对路径准备好的模板图片已经生成的原始二维码图二维码图片宽度二维码图片高度图片合成保存到路径字体类型显示的文字我是设置字体颜色合成头像 //查询用户信息 $client = $this->where(array(id => $client_id))->find(); $client_avatar =...

    sugarmo 评论0 收藏0
  • QR Code维码

    摘要:二维码分类不支持中文专利未公开,需缴费专利公开,支持中文主要使用二维码优点识别速度快数据密度大存储数据越多占用空间小容错能力强生成二维码前提条件必须安装库下载库生成二维码生成二维码推荐下载库识别二维码准备以下个库 二维码分类 PDF417 :不支持中文 DM : 专利未公开,需缴费 QR Code : 专利公开,支持中文(主要使用) QRCode二维码优点 识别速度快 数据密度大...

    JasonZhang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<