在图片上加二维码,并且添加文字

        // 设置响应头,输出图片
//        header('Content-Type: image/png');
        $domain = $this->request->domain();
//        $public =public_path();
//        echo $domain.'/mask.png';die;
//        $res =file_get_contents("./background/mask.png");
//        var_dump($res);die;
        // 加载背景图片
        $background = imagecreatefrompng('./background/mask.png');
        // 分配颜色
        $textColor = imagecolorallocate($background, 255, 255, 255); // 白色
        // 设置字体路径和大小
        $fontPath =realpath('./background/pingfangsc-regular.otf');
        $fontSize = 40; // 字体大小
        $text = "巡检点名称:".$site_name;
        // 设置文本的位置
        $x = 370; // X 位置
        $y = 300; // Y 位置

// 添加文字到图像
        imagettftext($background, $fontSize, 0, $x, $y, $textColor, $fontPath, $text);
        $fontSize1 = 40; // 字体大小
        $text1 = "编号:".$site_code;
        // 设置文本的位置
        $x1 = 360; // X 位置
        $y1 = 1570; // Y 位置

        $textColors = imagecolorallocate($background, 51, 51, 51); //字体颜色 黑色
// 添加文字到图像
        imagettftext($background, $fontSize1, 0, $x1, $y1, $textColors, $fontPath, $text1);
        // 生成二维码(使用phpqrcode库)
        $qr_path = 'uploads/inspection/';
        if (!file_exists($qr_path)) {
            @mkdir($qr_path, 0777, true);
        }
        $qrcodeFile = $qr_path . 'qrcode.png';
        QRcode::png($site_url, $qrcodeFile, QR_ECLEVEL_L, 22,0);

        // 加载生成的二维码
        $qrcode = imagecreatefrompng($qrcodeFile);

        // 合并二维码到背景图
        $qrcodeX = 230; // 调整二维码的X位置
        $qrcodeY = 630; // 调整二维码的Y位置
        imagecopy($background, $qrcode, $qrcodeX, $qrcodeY, 0, 0, imagesx($qrcode), imagesy($qrcode));
        // 输出最终图像
        imagepng($background,$qr_path.$site_code_name.'.png');

        // 清理内存
        imagedestroy($background);
        imagedestroy($qrcode);
        return $domain."/".$qr_path.$site_code_name.'.png';

  

 

posted on 2024-08-28 15:19  kevin_yang123  阅读(26)  评论(0编辑  收藏  举报