php二维码生成logo居中

时间: 2014-12-16 11:40 栏目: PHP 浏览: 9261 赞: 53 踩: 0 字体:

以下为本篇文章全部内容:

使用phpqrcode生成的效果图:

1614187017177455.png


之前给一个客户做微商城的网站,结果客户要求说要每件商品都能生成一张自己的二维码,方便顾客快速找到该商品,并且附上产品图片。

琢磨了一番和网上查找之后,发现有几种解决方法,一种是通过谷歌二维码api

谷歌方法:

    示例:
        php二维码生成,谷歌接口演示

        https://chart.googleapis.com/chart?cht=qr&chs=150x150&choe=UTF-8&chld=L|4&chl=http://www.sunnyos.com

    请求地址:

        https://chart.googleapis.com/chart?

    参数:

        cht=qr 生成二维码图片

        chs=150×150 宽度和高度为150

        choe=UTF-8 生成内容编码,不是必须传的(默认为utf-8)

        chld=L(7%) M(15%) Q(25%) H(30%) 错误校正

        margin 为二维码边界空白大小 默认为4(非必须)

        chl=http://www.sunnyos.com 二维码里面存放的内容为http://www.sunnyos.com

以上就是谷歌提供的api生成方法,优点是方便快捷可以生成二维码,缺点是随时被墙了,还有功能不能自定义。

所以我选择了使用phpqrcode类来进行自己生成

phpqrcode类生成方法:

<?php
    //生成中间带logo的二维码  
    include('phpqrcode.php');  // 引入phpqrcode类库
    $value='http://www.sunnyos.com';  // 二维码存放的内容
    $errorCorrectionLevel = 'L';  // 错误校正
    $matrixPointSize = 10;  // 边界空白位置
    QRcode::png($value, 'sunny.png', $errorCorrectionLevel, $matrixPointSize, 2); //生成二维码
    $logo = 'logo.jpg';//logo的图片地址
    $QR = 'sunny.png';  //二维码图片地址
    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_height = imagesy($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);  
    }  
    imagepng($QR,'sunny.png');  //跟logo合并之后的地址

关于phpqrcode的类库我就不提供下载了,大家百度都能搜到,这里只是给大家说说这个类库的使用方法,其他的方法我也没有太过深入的研究,随后有其他研究了,再跟大家分享。