zoukankan      html  css  js  c++  java
  • 使用qrcode类制作二维码

    <?php
        require_once './phpqrcode/phpqrcode.php';
        /*
        * 地址:http://phpqrcode.sourceforge.net/   下载qrcode类
        * @param string $url      要生成的链接
        * @param bool   $local   是否生成本地文件 
        * @param string $logo   中间图片地址 
        */ 
    
        echo qrcode('https://www.cnblogs.com/mengor/p/8192642.html',$local=true,$logo="./_img/20170713165304.png");
        function qrcode($url,$local,$logo){
           $value = $url; //二维码内容 链接
           $errorCorrectionLevel = 'M';//容错级别 
           $matrixPointSize = 8;//生成图片大小 
           if(!$local){
                QRcode::png($value,false, $errorCorrectionLevel, $matrixPointSize, 2); 
           }else{
                $abs_url = './_img/';  //保存的二维码路径
                $qr_dir= $abs_url.microtime().'.png'; //保存的二维码名字 
                //生成二维码图片 
                QRcode::png($value,  $qr_dir, $errorCorrectionLevel, $matrixPointSize, 2); 
                $QR =  $qr_dir;//已经生成的原始二维码图 
      
                if ($logo !== FALSE) {
                    $QR = imagecreatefromstring(file_get_contents($QR)); 
                    $logo = imagecreatefromstring(file_get_contents($logo)); 
                    $QR_width = imagesx($QR);//二维码图片宽度 
                    $QR_height = imagesy($QR);//二维码图片高度 
                    $logo_width = imagesx($logo);//logo图片宽度 
                    $logo_height = imagesy($logo);//logo图片高度 
                    $logo_qr_width = $QR_width / 5; 
                    $scale = $logo_width/$logo_qr_width; 
                    $logo_qr_height = $logo_height/$scale; 
                    $from_width = ($QR_width - $logo_qr_width) / 2; 
                    //重新组合图片并调整大小 
                    imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
                    //输出图片 
                    $he_dir= $abs_url.microtime().'.png';//重组图片路径
                    imagepng($QR, $he_dir);
                    return '<img src="'.$he_dir.'" alt="">';      
                }else{
                    return '<img src="'.$qr_dir.'" alt="">';      
                }
           }
       }
    
     由于二维码允许有一定的容错性,一般的二维码即使在遮住部分但仍然能够解码,经常我们扫描二维码的时候扫描到甚至不到一半时就能解码扫描结果,这是因为生成器会将部分信息重复表示来提高其容错度,这就是为什么我们在二维码中间加个LOGO图片并不影响解码结果的原因。

    require_once './phpqrcode/qrlib.php';
    /*  * @param  要生成的链接       
        * @param  是否生成本地文件 
        * @param  容错级别 
        * @param  大小 
        * @param  外边距 
        * @param  是否在本地保存的同时打印到页面    修改 code中png源码
        */
    QRcode::png('abc',false,QR_ECLEVEL_L,10,2,true);

    
    
  • 相关阅读:
    什么是MIME类型
    让IIS支持wml,支持Jad,jar,3gp,mp4的下载
    REEBSD常用命令大全
    nginx的http session管理
    FreeBSD 8.0下给网卡绑定双IP
    firefox、IE下的几个不同属性的方法调用
    如何配置nginx的流量限制
    Nginx 简单的负载均衡配置示例
    DOM信息nodeType的应用
    SSI 的指令及参数
  • 原文地址:https://www.cnblogs.com/mengor/p/8192642.html
Copyright © 2011-2022 走看看