首页后端开发PHP教你用php将二维码和文字结合到一个背景图片上!

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

时间2024-02-02 06:51:02发布访客分类PHP浏览1090
导读:收集整理的这篇文章主要介绍了教你用php将二维码和文字结合到一个背景图片上!,觉得挺不错的,现在分享给大家,也给大家做个参考。@H_512_9@将二维码生成到背景图片上,并且文字生成到背景图上,可以无限制扩增1.生成前的图片 生成后的图片...
收集整理的这篇文章主要介绍了教你用php将二维码和文字结合到一个背景图片上!,觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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将二维码和文字结合到一个背景图片上!的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 教你用php将二维码和文字结合到一个背景图片上!
本文地址: https://pptw.com/jishu/596503.html
Go与PHP的语法是如何对比 PHP如何实现支付宝支付功能(图文详解)

游客 回复需填写必要信息