将二维码生成到背景图片上,并且文字生成到背景图上,可以无限制扩增
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将二维码和文字结合到一个背景图片上!所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)