DeTechn Blog

PHP生成二维码图片(可自定义logo,大小,容错)

phpqrcode类下载地址:https://sourceforge.net/projects/phpqrcode/files/

/*生成二维码图片
    @param string $content 内容
    @param string $qr 二维码地址
    @param string $logo logo地址
    @param string $level 容错等级
    @param string $size 图片大小
    @return string
    */
   function qr($content="", $qr="", $logo="", $level="L", $size="6") {
    if(empty($content)) {
        return 'content is not empty';
    }
    \think\Loader::import('phpqrcode.phpqrcode', EXTEND_PATH);
    if(empty($qr)) {
        $path = Env::get('ROOT_PATH') . "public/static/"; // 本地存放图片路径
        if(!file_exists($path)) {
            mkdir($path, 0777, true);
        }
        $qr = $path . time() . '.png';
    }
    QRcode::png($content, $qr, $level, $size, 2);
    if($logo) {
        if(file_exists($logo)) {
            $logo_resource = imagecreatefromstring(file_get_contents($logo));
            $qrcode_resource = imagecreatefromstring(file_get_contents($qr));
            $logo_w = imagesx($logo_resource);   // logo图片宽度
            $logo_h = imagesy($logo_resource);   // logo图片高度
            $qrcode_w = imagesx($qrcode_resource); // 二维码图片宽度
            $logo_qr_width = $qrcode_w / 5;
            $scale = $logo_w / $logo_qr_width;
            $logo_qr_height = $logo_h / $scale;
            $from_width = ($qrcode_w - $logo_qr_width) / 2;
            // 重新组合图片并调整大小
            imagecopyresampled($qrcode_resource, $logo_resource, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_w, $logo_h);
            imagepng($qrcode_resource, $qr);
        } else {
            return 'logo file is not exist';
        }
    }
    return $qr;
}?>```

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »