將二維碼生成到背景圖片上,并且文字生成到背景圖上,可以無限制擴增
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將二維碼和文字結合到一個背景圖片上!
文章位置:http://vcdvsql.cn/article42/chsghc.html
成都網站建設公司_創新互聯,為您提供軟件開發、網站設計、微信公眾號、靜態網站、App開發、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯