zoukankan      html  css  js  c++  java
  • phpqrcode生成二维码广告图

    1.使用phpqrcode生成方便调用的二维码

    引入php类库phpqrcode

    1 require_once "phpqrcode.php";
    2 $text = urldecode($_GET['url']);  //二维码链接内容
    3 $outfile =    false;                //是否输出二维码        
    4 $level = 'L';                     //容错级别: L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)
    5 $size = 9;                        //大小   
    6 $margin = 1;                      //二维码周围边框空白区域间距值
    7 $saveandprint =    false;            //是否保存二维码并显示           
    8 
    9 QRcode::png($text, $outfile, $level, $size, $margin, $saveandprint);//生成二维码图片 

    关于QRcode:png方法的参数说明:

    1 public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) 
    2         {
    3             $enc = QRencode::factory($level, $size, $margin);
    4             return $enc->encodePNG($text, $outfile, $saveandprint=false);
    5         }

    1.参数$text,就是URL网址参数

    2.第二个参数$outfile默认为否,不生成文件,只将二维码图片返回,否则需要给出存放生成二维码图片的路径,为否时返回的是二进制的图片流,生成在缓冲区,在页面输出的时候会从缓冲区送到浏览器,所以在代码中是使用log输出是不会记录在日志中的,也不需要使用echo进行内容输出。所以直接使用base64_encode(QRcode::png)是没有用的。

    3.第三个参数$level默认为L,这个参数可传递的值分别是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)。这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比。利用二维维码的容错率,我们可以将头像放置在生成的二维码图片任何区域。

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

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

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

    调用方法:

     <img src="http://test.com?url=http://www.cnblogs.com/xcrh/"> 

    2.生成带logo的二维码

     1 <?php
     2 require_once "phpqrcode.php";
     3 $text = urldecode($_GET['url']);  //内容
     4 //$outfile =    false;                //是否输出二维码
     5 $level = 'L';                     //容错级别: L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)
     6 $size = 9;                        //大小
     7 $margin = 1;                      //二维码周围边框空白区域间距值
     8 //$saveandprint =    false;            //是否保存二维码并显示
     9 
    10 QRcode::png($text, qrcode.png, $level, $size, $margin, 2);//生成二维码图片
    11 
    12 $logo = 'http://test.com/fxs_tmwq800x1130.jpg';//准备好的logo图片
    13 $QR = 'qrcode.png';//已经生成的原始二维码图
    14 
    15 if ($logo !== FALSE) {
    16     $QR = imagecreatefromstring(file_get_contents($QR));
    17     $logo = imagecreatefromstring(file_get_contents($logo));
    18     $QR_width = imagesx($QR);//二维码图片宽度
    19     $QR_height = imagesy($QR);//二维码图片高度
    20     $logo_width = imagesx($logo);//logo图片宽度
    21     $logo_height = imagesy($logo);//logo图片高度
    22     $logo_qr_width = $QR_width / 5;
    23     $scale = $logo_width/$logo_qr_width;
    24     $logo_qr_height = $logo_height/$scale;
    25     $from_width = ($QR_width - $logo_qr_width) / 2;
    26     //重新组合图片并调整大小
    27     imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
    28         $logo_qr_height, $logo_width, $logo_height);
    29 }
    30 
    31 //输出图片
    32 //imagepng($QR, 'myxzy.png');
    33 //echo '<img src="myxzy.png">';
    34 
    35 //输出图片
    36 Header("Content-type: image/png");
    37 ImagePng($QR);

    以上会在目录中生成qrcode.png图片

    3.生成带背景图的二维码广告图

    其实和生成带logo的二维码图一样,我只是把logo图和二维码图的位置交换,然后调一下相关位置参数,这里我直接用的二维码图链接

     1 <?php
     2 $text = urldecode($_GET['url']);
     3 $pic = urldecode($_GET['pic']);
     4 $logo = 'http://test/qrcode?url='.$text;//已经生成的原始二维码图
     5 
     6 $QR = 'http://test/fxs_'.$pic.'800x1130.jpg';//准备好的背景图片
     7 
     8 if ($logo !== FALSE) {
     9    $QR = imagecreatefromstring(file_get_contents($QR));
    10    $logo = imagecreatefromstring(file_get_contents($logo));
    11    $QR_width = imagesx($QR);//背景图片宽度
    12    $QR_height = imagesy($QR);//背景图片高度
    13    $logo_width = imagesx($logo);//二维码图片宽度
    14    $logo_height = imagesy($logo);//二维码图片高度
    15    $logo_qr_width = $QR_width / 4.5;
    16    $scale = $logo_width/$logo_qr_width;
    17    $logo_qr_height = $logo_height/$scale;
    18    $from_width = ($QR_width - $logo_qr_width) / 2;
    19    //重新组合图片并调整大小
    20    imagecopyresampled($QR, $logo, $from_width, $from_width+395, 0, 0, $logo_qr_width,
    21        $logo_qr_height, $logo_width, $logo_height);
    22 }
    23 
    24 //输出图片
    25 Header("Content-type: image/png");
    26 ImagePng($QR);
    27 ?>

    哈哈可以看到,我真的只是把$logo和$QR交换了位置

    调用方法

     1 <img src="http://test.com?url=http://www.cnblogs.com/xcrh&pic=test">  

    好好学习,天天向上,有错欢迎指正!

  • 相关阅读:
    autocomplete="off" 不起作用
    IE8兼容模式设置
    H5学习
    wampserver安装配置
    HTML5音乐播放器(最新升级改造加强版)
    HTML5+CSS3+jquery实现简单的音乐播放器
    jquery+css3实现3d滚动旋转
    HTML5游戏设计与开发 小白7-9月的动态
    jquery submit()不执行
    html5手机常见问题与工具分享
  • 原文地址:https://www.cnblogs.com/xcrh/p/6142727.html
Copyright © 2011-2022 走看看