php 抓取网页生成图片( 如何使用PHP生成二维码,以及如何生成中间带LOGO图像的二维码)
优采云 发布时间: 2022-01-06 20:09php 抓取网页生成图片(
如何使用PHP生成二维码,以及如何生成中间带LOGO图像的二维码)
使用PHP生成二维码的两种方法(附logo图片)
更新时间:2021年11月16日09:51:59 投稿:俊杰
随着科学技术的进步,二维码的应用领域越来越广泛。今天给大家分享一下如何使用PHP生成二维码,以及如何生成中间有LOGO图片的二维码。
一、使用Google API生成二维码
谷歌提供了比较完善的二维码生成接口,调用API接口很简单,下面是调用代码:
$urlToEncode="//www.jb51.net";
generateQRfromGoogle($urlToEncode);
/**
* google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】
* @param string $chl 二维码包含的信息,可以是数字、字符、二进制信息、汉字。
不能混合数据类型,数据必须经过UTF-8 URL-encoded
* @param int $widhtHeight 生成二维码的尺寸设置
* @param string $EC_level 可选纠错级别,QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。
* L-默认:可以识别已损失的7%的数据
* M-可以识别已损失15%的数据
* Q-可以识别已损失25%的数据
* H-可以识别已损失30%的数据
* @param int $margin 生成的二维码离图片边框的距离
*/
function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0')
{
$chl = urlencode($chl);
echo '
&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$chl.'" />';
}
二、使用PHP二维码生成类库PHP二维码生成二维码
PHP QR Code 是一个 PHP 二维码生成库,可用于轻松生成二维码。官网提供下载和多个demo demo。检查地址:。
下载官网提供的类库后,只需要使用phpqrcode.php生成二维码即可。当然,你的PHP环境必须开启支持GD2。phpqrcode.php提供了一个关键的png()方法,其中参数$text表示生成两位数的信息文本;参数$outfile表示是否输出二维码图片文件,默认为no;参数$level代表容错率,即Covered area仍可识别,分别是L(QR_ECLEVEL_L, 7%), M (QR_ECLEVEL_M, 15%), Q (QR_ECLEVEL_Q, 25%), H (QR_ECLEVEL_H, 30 %); 参数$size表示生成图像的大小,默认为3;参数$margin表示二维码周围空白区域的边距值;
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二维码非常简单,下面的代码可以生成一个内容为“//”的二维码。
php代码
包括'phpqrcode.php';
二维码::png('//');
在实际应用中,我们会在二维码中间添加自己的LOGO,以增强宣传效果。如何生成带有徽标的二维码?其实原理很简单。首先使用PHP QR Code生成二维码图片,然后使用PHP的图片相关函数将准备好的logo图片添加到新生成的原创二维码图片中,再重新生成一张新的。二维码的图像。
include 'phpqrcode.php';
$value = '//www.jb51.net'; //二维码内容
$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, 'helloweba.png');
echo 'helloweba.png';
以下是对上面代码的引用,不产生图片文件,方便调用,将以下代码保存为img.php
<p>