教你用php将二维码和文字结合到一个背景图片上!
导读:收集整理的这篇文章主要介绍了教你用php将二维码和文字结合到一个背景图片上!,觉得挺不错的,现在分享给大家,也给大家做个参考。@H_512_9@将二维码生成到背景图片上,并且文字生成到背景图上,可以无限制扩增1.生成前的图片 生成后的图片...
收集整理的这篇文章主要介绍了教你用php将二维码和文字结合到一个背景图片上!,觉得挺不错的,现在分享给大家,也给大家做个参考。@H_512_9@将二维码生成到背景图片上,并且文字生成到背景图上,可以无限制扩增
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将二维码和文字结合到一个背景图片上!的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 教你用php将二维码和文字结合到一个背景图片上!
本文地址: https://pptw.com/jishu/596503.html
