使用phpqrcode.php生成二维码并合并到背景图片上

使用phpqrcode.php生成二维码并合并到背景图片上

1.找到phpqrcode类库的phpqrcode.php下载放进你的项目,再引入到你的开发代码中

(1)下载地址:http://phpqrcode.sourceforge.net(解压后只要phpqrcode.php就成)
(2)引入:include_once("/library/phpqrcode/phpqrcode.php");
(3)直接贴代码
	/**
     * 在背景图上生成二维码
     * $bg_img    背景图地址
     * $url       二维码内容url
     * $x   二维码在背景图片上位置的左边距,单位:px (例:436)
     * $y   二维码在背景图片上位置的上边距,单位:px (例:1009)
     * $qrcode_size  二维码(正方形)的尺寸,单位:px (例:238)
     * $white_edge   二维码白边大小
     * $echo_path   生成的二维码海报图片存放路径
     **/
    public function getActivityImg($bg_img, $url, $x=0, $y=0, $qrcode_size, $white_edge=0, $echo_path){
    	include_once("/library/phpqrcode/phpqrcode.php");  //放到你的代码文件头部去
        $errorCorrectionLevel = QR_ECLEVEL_L;          //容错级别
        $matrixPointSize = 2;                           //生成二维码图片大小
        $qrcode = "qrcod.png";							//用来存放二维码的变量,不是实际图片

        //生成二维码图片
        //参数内容:二维码储存内容,生成存储,防错等级,二维码大小,白边大小
        QRcode::png($url, $qrcode, $errorCorrectionLevel, $matrixPointSize, $white_edge);	//我这个白边大小是0,因为加上白边控制不了大小,不能完美契合背景图(白边可以让设计搞^.^)

        //合并背景图和二维码
        $background = imagecreatefromstring(file_get_contents($bg_img));	//资源
        $qrcode_res = imagecreatefromstring(file_get_contents($qrcode));	//资源
        list($src_w, $src_h) = getimagesize($qrcode);
		//参数内容:目标图象连接资源,源图象连接资源,目标X坐标点,目标Y坐标点,源的X坐标点,源的Y坐标点,目标宽度,目标高度,源图象的宽度,源图象的高度(参数有疑问的话到:https://www.php.net/manual/zh/function.imagecopyresampled.php 去看,其他博客里瞎写)
        imagecopyresampled($background, $qrcode_res, $x, $y, 0, 0, $qrcode_size, $qrcode_size, $src_w, $src_h);

         //输出到本地文件夹,返回生成图片的路径
        if(!is_dir(dirname($echo_path))){
            mkdir(dirname($echo_path), 0755, true);
            chown(dirname($echo_path), 'nobody');
            chgrp(dirname($echo_path), 'nobody');
        }

        imagepng($background,$echo_path);	//把生成的背景图+二维码资源 放到了目标路径下
        imagedestroy($background);
        imagedestroy($qrcode_res);
        return $echo_path;
    }

你可能感兴趣的:(第三方类库)