php 抓取网页生成图片(一个PHP二维码生成类库,轻松生成二维码,官网提供了下载和多个演示demo)

优采云 发布时间: 2022-03-12 07:18

  php 抓取网页生成图片(一个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图片的原因。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线