php 抓取网页生成图片(一个PHP二维码生成类库,轻松生成二维码,官网提供了下载和多个演示demo)
优采云 发布时间: 2022-03-12 07:18php 抓取网页生成图片(一个PHP二维码生成类库,轻松生成二维码,官网提供了下载和多个演示demo)
HP QR Code 是一个 PHP 二维码生成类库,可以用来轻松生成二维码。官网提供下载和多个demo demo。检查地址:
http://phpqrcode.sourceforge.net/
下载官网提供的类库后,只需要使用phpqrcode.php生成二维码即可。当然,你的 PHP 环境必须支持 GD2。
phpqrcode.php 提供了一个关键的 png() 方法,该方法
参数$text代表生成两位信息文本;
参数$outfile表示是否输出二维码图片文件,默认为no;
参数$level表示容错率,即覆盖区域仍然可以被识别,分别是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H) , 30%));
参数$size表示生成图片的大小,默认为3;参数$margin表示二维码边框周围空白区域的间距值;
$saveandprint 参数表示是否保存二维码并显示。
. 代码显示如下:
public static function png($text, $outfile=false, $level=QR_ECLEVEL_L, $size=3, $margin=4, $saveandprint=false)
{
$enc = QRencode::factory($level, $size, $margin);
return $enc->encodePNG($text, $outfile, $saveandprint=false);
}
调用 PHP 二维码非常简单。以下代码可以生成内容为“”的二维码。
include 'phpqrcode.php';
QRcode::png('http://www.cnblogs.com/txw1958/');
然后在实际应用中,我们会在二维码中间添加自己的LOGO,增强了宣传效果。如何生成带有标志的二维码?其实原理很简单。首先使用PHP二维码生成二维码图片,然后使用PHP的图片相关函数将准备好的logo图片添加到刚刚生成的原创二维码图片中,然后重新生成新的图片。二维码图像。
. 代码显示如下:
include 'phpqrcode.php';
$value = 'http://www.cnblogs.com/txw1958/'; //二维码内容
$errorCorrectionLevel = 'L';//容错级别
$matrixPointSize = 6;//生成图片大小
//生成二维码图片
QRcode::png($value, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2);
$logo = 'logo.png';//准备好的logo图片
$QR = 'qrcode.png';//已经生成的原始二维码图
if ($logo !== FALSE) {
$QR = imagecreatefromstring(file_get_contents($QR));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);//二维码图片宽度
$QR_height = imagesy($QR);//二维码图片高度
$logo_width = imagesx($logo);//logo图片宽度
$logo_height = imagesy($logo);//logo图片高度
$logo_qr_width = $QR_width / 5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
$from_width = ($QR_width - $logo_qr_width) / 2;
//重新组合图片并调整大小
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
$logo_qr_height, $logo_width, $logo_height);
}
//输出图片
imagepng($QR, 'helloweixin.png');
echo 'helloweixin.png';
include 'phpqrcode.php';
$value = 'http://www.cnblogs.com/txw1958/'; //二维码内容
$errorCorrectionLevel = 'L';//容错级别
$matrixPointSize = 6;//生成图片大小
//生成二维码图片
QRcode::png($value, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2);
$logo = 'logo.png';//准备好的logo图片
$QR = 'qrcode.png';//已经生成的原始二维码图
if ($logo !== FALSE) {
$QR = imagecreatefromstring(file_get_contents($QR));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);//二维码图片宽度
$QR_height = imagesy($QR);//二维码图片高度
$logo_width = imagesx($logo);//logo图片宽度
$logo_height = imagesy($logo);//logo图片高度
$logo_qr_width = $QR_width / 5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
$from_width = ($QR_width - $logo_qr_width) / 2;
//重新组合图片并调整大小
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
$logo_qr_height, $logo_width, $logo_height);
}
//输出图片
imagepng($QR, 'helloweixin.png');
echo 'helloweixin.png';
由于二维码允许一定程度的容错,所以一般的二维码即使被部分覆盖仍然可以解码。通常当我们扫描二维码时,我们可以解码扫描结果的时间甚至不到一半。这是因为*敏*感*词*会重复部分信息以提高其容错能力,这也是我们在不影响解码结果的情况下在二维码中间添加LOGO图片的原因。