教你用php将二维码和文字结合到一个背景图片上!
生活随笔
收集整理的這篇文章主要介紹了
教你用php将二维码和文字结合到一个背景图片上!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
將二維碼生成到背景圖片上,并且文字生成到背景圖上,可以無限制擴增
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將二維碼和文字結合到一個背景圖片上!的詳細內容,更多請關注風君子博客其它相關文章!
總結
以上是生活随笔為你收集整理的教你用php将二维码和文字结合到一个背景图片上!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC透明桌面flash金鱼
- 下一篇: b2c电子商务网站流量评价数据主要有哪些