《PHP生成中間帶LOGO或水印圖的二維碼圖片的函數》要點:
本文介紹了PHP生成中間帶LOGO或水印圖的二維碼圖片的函數,希望對您有用。如果有疑問,可以聯系我們。
此函數是PHP給現成的二維碼添加中間水印或LOGO,有三種處理方式:
1、覆蓋原來的二維碼圖片
2、直接保存為另外指定名稱的圖片
3、不保存,直接輸出顯示。
具體體哪一種方式,參$saveOtherImg參數值說明。
$markImg = 'wechat.png'; // 水印圖或LOGO $qrImg = "base.jpg"; // 現有的二維碼圖片 #addMToQrcode ($markImg, $qrImg,false); #直接顯示不保存 addImgToQrcode ($markImg, $qrImg,'base_logo.png'); #添加水印并保存為base_logo.png
/** * 給二維碼加中間水印圖 * 來源: http://www.snjht.com 可自由使用,請保留注釋信息 * @param string $markImg 要放中間的小水印圖 * @param string $QRcodeImg 原二維碼 * @param string $saveOtherImg 三種情形:1、直接提供文件名,則另存,2、默認$saveOtherImg===''則覆蓋 $QRcodeImg,3、如果 $saveOtherImg ===false 則直接顯示不保存 * @return bool 失敗返回false */ function addImgToQrcode($markImg='', $QRcodeImg='', $saveOtherImg='') { if(empty($markImg) || empty($QRcodeImg)) return false; #if(! file_exists ($QRcodeImg)) return false; $QR = imagecreatefromstring(file_get_contents($QRcodeImg)); $img = imagecreatefromstring(file_get_contents($markImg)); $QR_width = imagesx($QR);//二維碼圖片寬度 $QR_height = imagesy($QR);//二維碼圖片高度 $img_width = imagesx($img);// $markImg 圖片寬度 $img_height = imagesy($img);// $markImg 圖片高度 $img_qr_width = $QR_width / 5; $scale = $img_width/$img_qr_width; $img_qr_height = $img_height/$scale; $from_width = ($QR_width - $img_qr_width) / 2; //重新組合圖片并調整大小 imagecopyresampled($QR, $img, $from_width, $from_width, 0, 0, $img_qr_width, $img_qr_height, $img_width, $img_height); //輸出圖片:$saveOtherImg===''則覆蓋 $QRcodeImg,如果 $saveOtherImg ===false 則直接顯示不保存 , if(!empty($saveOtherImg)) { $ext = trim (strrchr ($saveOtherImg,'.'),'.'); if(!empty($ext)) strtolower ($ext); else $ext = trim (strrchr ($QRcodeImg,'.'),'.'); if($ext=='jpg') $ext = 'jpeg'; $funcs = "image".$ext; $funcs($QR, $saveOtherImg); } elseif($saveOtherImg===false) #直接顯示不保存 { $ext = trim (strrchr ($QRcodeImg,'.'),'.'); if(!empty($ext)) strtolower ($ext); if($ext=='jpg') $ext = 'jpeg'; $funcs = "image".$ext; Header("Content-type: image/".$ext); $funcs($QR); } elseif ($saveOtherImg==='') #則覆蓋 $QRcodeImg { $ext = trim (strrchr ($QRcodeImg,'.'),'.'); if(!empty($ext)) strtolower ($ext); if($ext=='jpg') $ext = 'jpeg'; $funcs = "image".$ext; $funcs($QR, $QRcodeImg); } return true; }
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/169.html