《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