> 백엔드 개발 > PHP 튜토리얼 > PHP를 사용하여 QR 코드와 텍스트를 배경 이미지로 결합하는 방법을 가르쳐주세요!

PHP를 사용하여 QR 코드와 텍스트를 배경 이미지로 결합하는 방법을 가르쳐주세요!

藏色散人
풀어 주다: 2023-04-09 06:56:01
앞으로
4015명이 탐색했습니다.

배경 이미지에 QR 코드를 생성하고, 배경 이미지에 텍스트를 생성하여 무제한 확장 가능

1 생성 전 이미지
PHP를 사용하여 QR 코드와 텍스트를 배경 이미지로 결합하는 방법을 가르쳐주세요!

picture after

PHP를 사용하여 QR 코드와 텍스트를 배경 이미지로 결합하는 방법을 가르쳐주세요!

class codeImg
{
	private $date,$img,$main,$width,$height,$target,$white;
    	public function constr($source)
    	{
    		$this->date   = '' . date('Ymd') . '/';
	        $this->img    = $this->date . md5($source) . '.jpg';
	        $this->main   = imagecreatefromjpeg($source);
	        $this->width  = imagesx($this->main);
	        $this->height = imagesy($this->main);
	        $this->target = imagecreatetruecolor($this->width, $this->height);
	        $this->white  = imagecolorallocate($this->target, 255, 255, 255);
        		imagefill($this->target, 0, 0, $this->white);
        		imagecopyresampled($this->target, $this->main, 0, 0, 0, 0, $this->width, $this->height, $this->width, $this->height);
    	}
    	/**
	     * 生成二维码
	     * @param  [type]  $website  [生成二维码地址]
	     * @param  string  $filename [生成二维路经名称]
	     * @param  string  $level    [这个参数可传递的值分别是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%),这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比,也就是被覆盖的区域还能识别;]
	     * @param  integer $size     [控制生成图片的大小,默认为4]
	     * @param  integer $margin [控制生成二维码的空白区域大小]
	     * @return [type]            [description]
	     */
	      public function qrencode($website, $filename = false, $level = "L", $size = 4, $margin = 2)
	      {
	      		include "./phpqrcode/qrlib.php";
        			QRcode::png($website, $filename, $level, $size, 2);
	      }
	      /**
	     * 把二维码图片生成到背景图片上及文字
	     * @param  string  $source      背景图片
	     * @param  string  $text1       文字描述
	     * @param  string  $child1      二维码图
	     * @param  integer $textwidth   文字横向位置
	     * @param  integer $textherght  文字高度
	     * @param  integer $$fontSize   字体大小
	     * @param  integer $cate1,$cate2,$cate3 颜色表
	     * @param  string $font         文字字体
	     * @return [type]               [description]
	     */
	     public function generateFont($source, $text1, $textwidth, $textherght, $fontSize = 18, $cate1 = 255, $cate2 = 250, $cate3 = 250, $font = './font/fangsong_GB2312.ttf')
	     {
	     	$this->constr($source);
        		$fontColor = imagecolorallocate($this->target, $cate1, $cate2, $cate3); //字的RGB颜色
        		$fontBox   = imagettfbbox($fontSize, 0, $font, $text1); //文字水平居中实质
        		imagettftext($this->target, $fontSize, 0, $textwidth, $textherght, $fontColor, $font, $text1);
        		$this->createImg();
        		return $this->img;
	     }
	      /**
	     * [generateImg description]
	     * @param  string  $source        背景图片
	     * @param  string  $codeurl       二维码图片
	     * @param  integer  $sourcewidth  二维码横向所在位置
	     * @param  integer  $sourceheight 二维码高度位置
	     * @param  integer $codewidth    二维码宽度
	     * @param  integer $codeheight   二维码高度
	     * @return [type]                [description]
	     */
	      public function generateImg($source, $codeurl, $sourcewidth, $sourceheight, $codewidth = 100, $codeheight = 100)
	      {
			$this->constr($source);
        			$child1 = imagecreatefrompng($codeurl);
        			$codewidth = $codewidth > 0 ? $codewidth :imagesx($child1);
        			$codeheight = $codeheight > 0 ? $codeheight : imagesy($child1);
        			imagecopyresampled($this->target, $child1, $sourcewidth, $sourceheight, 0, 0, $codewidth, $codeheight,imagesx($child1),imagesy($child1));
        			imagedestroy($child1);
        			$this->createImg();
        			return $this->img;
		}
		function createImg()
		{
			@mkdir('./' . $this->date);
       			 imagejpeg($this->target, './' . $this->img, 95);
        			imagedestroy($this->main);
        			imagedestroy($this->target);
		}
	}
		$source       = "./img/1000.jpg";
		$codeImg = new codeImg($source);
		$website = "http://www.baidu.com";
		$codeurl = "./temp/code.png";
		$codeImg->qrencode($website, $codeurl);
		#################################
		$text         = "开始了开始了hahhah呵呵";
		$textwidth    = 100;
		$textherght   = 50;
		$generateFont = $codeImg->generateFont($source, $text, $textwidth, $textherght);
		##########################################################
		$sourcewidth  = 200;
		$sourceheight = 150;
		$generateImg  = $codeImg->generateImg($generateFont, $codeurl, $sourcewidth, $sourceheight);
		echo "<img  src=&#39;" . $generateImg . "&#39; alt="PHP를 사용하여 QR 코드와 텍스트를 배경 이미지로 결합하는 방법을 가르쳐주세요!" >";
	
	``		
로그인 후 복사

더 많은 관련 지식은 PHP 중국어 홈페이지를 방문해주세요!

위 내용은 PHP를 사용하여 QR 코드와 텍스트를 배경 이미지로 결합하는 방법을 가르쳐주세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿