PHP生成一张含有二维码的图片(文章末尾附代码下载链接)
来源:互联网 发布:对讲机写频软件 编辑:程序博客网 时间:2024/06/05 16:27
PHP生成一张图片用到的类有QRcode,QRencode ,QRtools , QRimage这四个类是主要的。
主导类:QRcode
辅助类:QRencode, QRimage ,QRtools .
请看下图, 直接贴源码!!!
1、直接调用函数(参数赋值,返回图片);
//QRcodepublic static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) { $enc = QRencode::factory($level, $size, $margin); // var_dump($enc); return $enc->encodePNG($text, $outfile, $saveandprint=false);}
2、转码过程,进行工厂模式转化;
//QRencodepublic static function factory($level = QR_ECLEVEL_L, $size = 3, $margin = 4){ // echo "run Qrencode::factory....<br/>"; $enc = new QRencode(); $enc->size = $size; $enc->margin = $margin; switch ($level.'') { case '0': case '1': case '2': case '3': $enc->level = $level; break; case 'l': case 'L': $enc->level = QR_ECLEVEL_L; break; case 'm': case 'M': $enc->level = QR_ECLEVEL_M; break; case 'q': case 'Q': $enc->level = QR_ECLEVEL_Q; break; case 'h': case 'H': $enc->level = QR_ECLEVEL_H; break; } return $enc;}
3、记录过程信息
//QRencodepublic function encodePNG($intext, $outfile = false, $saveandprint=false) { // echo "run Qrencode::encodePNG....<br/>"; try { ob_start(); $tab = $this->encode($intext); $err = ob_get_contents(); //获取对象内容 ob_end_clean(); //清除 if ($err != '') QRtools::log($outfile, $err); //记录错误 $maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin)); // echo "run Qrencode::maxSize....".$maxSize."<br/>".QR_PNG_MAXIMUM_SIZE."<br/>"; QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint); } catch (Exception $e) { //记录信息 QRtools::log($outfile, $e->getMessage()); }}
4、生成二维码
//QRencodepublic function encode($intext, $outfile = false) { //echo "run Qrencode::encode....<br/>"; $code = new QRcode(); if($this->eightbit) { $code->encodeString8bit($intext, $this->version, $this->level); } else { $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive); } // QRtools::markTime('after_encode'); $binarized = QRtools::binarize($code->data); if ($outfile!== false) { file_put_contents($outfile, join("\n", $binarized)); } return $binarized;}
5、输出图片
//QRimage public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE) { $image = self::image($frame, $pixelPerPoint, $outerFrame); if ($filename === false) { Header("Content-type: image/png"); ImagePng($image); } else { if($saveandprint===TRUE){ ImagePng($image, $filename); header("Content-type: image/png"); ImagePng($image); }else{ ImagePng($image, $filename); } } ImageDestroy($image); }
这是主要的代码,全部代码稍后上传!
下载地址:http://download.csdn.net/detail/u013703963/9694960
0 0
- PHP生成一张含有二维码的图片(文章末尾附代码下载链接)
- java中二维码的生成及解析(含有图片)
- 生成二维码下载图片
- php 生成图片二维码
- php --- 二维码生成代码
- php生成二维码代码
- PHP生成包含信息的二维码图片
- java代码生成带图片的二维码
- php生成网站二维码的代码
- 批量生成下载二维码图片
- 文章详情页链接自动生成二维码
- Photoshop批量生成含有编号的图片------------一张图,编号不同
- Java快速生成二维码(内附代码)
- Java代码生成二维码图片
- PHP 生成一张图片的两种方法
- Python 爬虫的工具列表( 附Github代码下载链接)
- Python 爬虫的工具列表( 附Github代码下载链接)
- Python 爬虫的工具列表 附Github代码下载链接
- 异步与回调
- 训练Cifar10网络时,遇到训练结果始终Accuracy不变,Loss=87.33的情况
- [__NSCFNumber length]: unrecognized selector sent to instance
- order by 和 group by的区别
- QT5.7在VS2015中的使用(1)
- PHP生成一张含有二维码的图片(文章末尾附代码下载链接)
- [生存志] 第54节 武经七书司马法
- JSONObject/JSONArray的区别
- [LeetCode]Longest Palindromic Substring(Java)
- 日下
- cvSegmentFGMask函数
- LeetCode 155. Min Stack
- Java之美[从菜鸟到高手演变]之类与对象(一)
- php 根据自增id创建唯一编号类