《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.vephp.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.vephp.com/jiaocheng/169.html