欢迎您访问我的笔记本站旨在于记录一些平时工作中遇到的一些问题和解决方法,方便查阅,部分内容来源于网络,如有侵权请联系我删除
  • 微信微信
您现在的位置是:首页 > PHP后端

一个生成二维码的PHP类库,可传logo-[转载]

日期:2019-12-30 14:35:05 作者:网络 来源:网络 浏览:1084 次
生成二维码功能在我们日常工作中用到的时间还是比较多,这里分享一个比较老的类库文件,稍加改动可以添加logo

首先下载类库文件,下载地址:https://pan.baidu.com/s/1JfPTW-X5OmaapxS0eege8g,提取码:77lc ,在项目中引用后直接调用相关方法。

直接生成二维码(参数及注释直接追踪源码查看):

QRcode::png();

部分源码:

/**
 * @param $text 二维码信息如一个网址或一段文字
 * @param bool $outfile 需要输出的二维码图片地址 如./test.png
 * @param int $level 容错率,也就是有被覆盖的区域还能识别,
 * 分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)
 * @param int $size 二维码大小
 * @param int $margin  边框空白距离大小
 * @param bool $saveandprint  是否保存二维码并显示
 */
public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 6, $margin = 2, $saveandprint=false)
{
    $enc = QRencode::factory($level, $size, $margin);
    return $enc->encodePNG($text, $outfile, $saveandprint);
}

生成带logo的二维码:

QRcode::png_log();

部分源码:

/**
 * @param string $text
 * @param string $log
 * @param string $png
 * @param string $png_log
 * @param int $level
 * @param int $size
 * @param int $margin
 * @param bool $saveandprint
 * @return bool
 */
public static function png_log($text='',$logo='',$png='',$png_log='',$level = QR_ECLEVEL_L,$size = 6, $margin = 2, $saveandprint=false){
    self::png($text,$png,$level,$size,$margin,$saveandprint);
    if(file_exists($logo)){
        $QR = imagecreatefromstring(file_get_contents($png));

        $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);

        return imagepng($QR,$png_log);
    }
    return false;
}


提交评论
评论列表