PHP生成带LOGO的二维码的实现方案

代码如下

生成二维码的接口是使用了google提供的,地址如下:http://chart.googleapis.com/chart?chs=$size&cht=qr&chl=$chl&chld=L|1&choe=UTF-8

<?php
    $data=isset($_GET['data'])?$_GET['data']:'www.meitu.com';
    $size=isset($_GET['size'])?$_GET['size']:'130x130';
    $logo=isset($_GET['logo'])?$_GET['logo']:'./test.jpg';
    $chl=urlencode($logo);
    $png="http://chart.googleapis.com/chart?chs=$size&cht=qr&chl=$chl&chld=L|1&choe=UTF-8";
    $QR=imagecreatefrompng($png);
    if($logo!=false){
        $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);
    }
    header('Content-type:image/png');
    imagepng($QR);
    imagedestroy($QR);
?>

生成的二维码效果如下:

posted @ 2014-04-17 18:26  罗导  阅读(236)  评论(0编辑  收藏  举报