教你用php将二维码和文字结合到一个背景图片上!

教你用php将二维码和文字结合到一个背景图片上!,第1张

概述教你用php将二维码文字结合到一个背景图片上!

@H_419_6@

将二维码生成到背景图片上,并且文字生成到背景图上,可以无限制扩增

1.生成前的图片

生成后的图片

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='" . $generateimg . "'>";		``		

更多相关知识,请访问PHP中文网!

总结

以上是内存溢出为你收集整理的教你用php将二维码和文字结合到一个背景图片上!全部内容,希望文章能够帮你解决教你用php将二维码和文字结合到一个背景图片上!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1161038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存