在凤凰网看到一篇文章:微信群二维码也能“整人”,99%的好友会中招!感觉挺好玩,所以自己也想做一个!
冷静分析?应该是这样,嗯…这样的,这样写的……嗯?开工
假装正经,其实也就很简单,图片加二维码合成然后添加文字,OK?
首先,第一步制作一个二维码接口,使用phpqrcode生成二维码
然后图片合成二维码再添加文字水印。以下是源码,仅供参考使用,代码已注标释。
<?php /* * 图片加二维码,并添加文字水印*/ header('Content-Type: image/png');//输出协议头 $text = isset($_GET['text']) ? $_GET['text'] : '免费看电影'; $lenth = strlen($text); if($lenth>=24){ $text = substr($text,0,24)."";//限制字数 } $qr = isset($_GET['qr']) ? $_GET['qr'] : 'svip7.cc'; //二维码内容 $time=date("该二维码7天内(m月d日前)有效,重新进入将更新",strtotime("+7 day")); $dst_path = 'bg.png';//背景图 $src_path = 'http://qr.liantu.com/api.php?text='.$qr.'&w=400';//这是联图二维码API //创建图片的实例 $dst = imagecreatefromstring(file_get_contents($dst_path));//读取背景图片数据 $src = imagecreatefromstring(file_get_contents($src_path));//读取二维码数据 //获取二维码的宽高 list($src_w, $src_h) = getimagesize($src_path); //将水印图片复制到目标图片上,最后个参数100是设置透明度,这里用不透明效果 imagecopymerge($dst, $src, 100, 200, 0, 0, $src_w, $src_h, 100); //如果水印图片本身带透明色,则使用imagecopy方法 //imagecopy($dst, $src, 100, 200, 0, 0, $src_w, $src_h); //FZZHJW.TTF 是简体字体 自己可以重网上下载其他字体 $col = imagecolorallocatealpha($dst,0,0,0,0); //文字水印颜色 $col1 = imagecolorallocatealpha($dst,102,102,102,1); //添加水印文字 //28 是字体大小 //180 是横坐标 //100是纵坐标 imagettftext($dst,28,0,180,100,$col,"FZZHJW.TTF",$text); imagettftext($dst,14,0,90,750,$col1,"FZZHJW.TTF",$time); //输出图片 list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path); imagepng($dst); //将数据进行销毁 imagedestroy($dst); imagedestroy($src);?>
自己也懒得弄二维码了,直接用了联图的二维码api。如果你自己要做,可以参考上面第一步那里的链接
字体文件自己可以重网上下载
演示效果如下图