ホームページ  >  記事  >  バックエンド開発  >  PHPを使用してロゴ画像付きのQRコードを生成する2つの方法

PHPを使用してロゴ画像付きのQRコードを生成する2つの方法

小云云
小云云オリジナル
2018-03-30 11:57:331972ブラウズ

この記事では、主に PHP でロゴ画像を含む QR コードを生成する 2 つの方法を説明します。お役に立てれば幸いです。

1. Google API を使用して QR コードを生成します
Google は、API インターフェースを呼び出すのが非常に簡単です:

$urlToEncode="http://www.php.cn";
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 &#39;<img src="http://chart.apis.google.com/chart?chs=&#39;.$widhtHeight.&#39;x&#39;.$widhtHeight.&#39;
 &cht=qr&chld=&#39;.$EC_level.&#39;|&#39;.$margin.&#39;&chl=&#39;.$chl.&#39;" alt="QR code" widhtHeight="&#39;.$widhtHeight.&#39;
 " widhtHeight="&#39;.$widhtHeight.&#39;"/>&#39;;
}


2. PHP QR コード生成を使用します。ライブラリ PHP QR Code は QR コードを生成します

PHP QR Code は、QR コードを簡単に生成するために使用できる PHP QR コード生成ライブラリです。公式 Web サイトでは、ダウンロードと複数のデモをご覧いただけます: http://phpqrcode.sourceforge。 。ネット/。
公式 Web サイトから提供されるクラス ライブラリをダウンロードした後、phpqrcode.php を使用して QR コードを生成するだけです。もちろん、PHP 環境は GD2 サポートを有効にする必要があります。 phpqrcode.php はキー png() メソッドを提供し、パラメータ text は 2 桁の情報テキストの生成を示し、パラメータ outfile は QR コード画像を出力するかどうかを示します。ファイル、デフォルトは no です。パラメータ level はフォールト トレランス レートを表します。つまり、カバーされたエリアが引き続き認識可能です。L (QRECLEVELL、7level はフォールト トレランス レート、つまり、カバーされたエリアが引き続き認識可能です) を表します。それぞれ L (QRECLEVELL、7size は生成された画像のサイズを表します。デフォルトは 3 です。パラメータ margin は QR コードの周囲の境界線の空白領域の間隔の値を表します。パラメータ margin は空白の間隔の値を表しますQR コードの周囲の境界線の領域; saveandprint パラメータは、QR コードを保存して表示するかどうかを表します。

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 QR コードを呼び出すと、「http:/」という内容の QR コードを生成できます。 /www.jb51.net".
Php コード
include 'phpqrcode.php';
QRcode::png('http://www .jb51.net');

実際のアプリケーションでは、独自のロゴを追加しますQR コードの真ん中にロゴを挿入して、宣伝効果を高めます。実際、PHP QR コードを使用して QR コード画像を生成するのは非常に簡単です。新しく生成された元の QR コード画像の中央に、事前に用意されたロゴ画像を追加し、新しい QR コード画像を再生成する関連関数

include &#39;phpqrcode.php&#39;;
$value = &#39;http://www.jb51.net&#39;; //二维码内容
$errorCorrectionLevel = &#39;L&#39;;//容错级别
$matrixPointSize = 6;//生成图片大小
//生成二维码图片
QRcode::png($value, &#39;qrcode.png&#39;, $errorCorrectionLevel, $matrixPointSize, 2);
$logo = &#39;logo.png&#39;;//准备好的logo图片
$QR = &#39;qrcode.png&#39;;//已经生成的原始二维码图
  
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, &#39;helloweba.png&#39;);
echo &#39;<img src="helloweba.png">&#39;;

以下は、上記のコードへの参照です。画像ファイルは生成されません。次のコードを img.php

<?php
include &#39;phpqrcode.php&#39;;
$value = $_GET[&#39;url&#39;];//二维码内容
$errorCorrectionLevel = &#39;L&#39;;//容错级别
$matrixPointSize = 6;//生成图片大小
//生成二维码图片
QRcode::png($value, &#39;qrcode.png&#39;, $errorCorrectionLevel, $matrixPointSize, 2);
$logo = &#39;jb51.png&#39;;//准备好的logo图片
$QR = &#39;qrcode.png&#39;;//已经生成的原始二维码图
 
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);
}
//输出图片
Header("Content-type: image/png");
ImagePng($QR);
として保存します。QR コードはある程度の耐障害性を備えているため、部分的にブロックされていてもデコードできる場合があります。 QR コードをスキャンすると、途中までしかスキャン結果をデコードできません。これは、ジェネレーターがフォールト トレランスを向上させるために情報の一部を繰り返し表現するためです。これが、ロゴ画像を途中に追加する理由です。 QR コードはデコード結果に影響しません

関連する推奨事項:

php はロゴ付きの QR コード クラスを実装します

PHP は WeChat QR コードの例を生成します

php QR コード コードの生成およびダウンロード メソッド

以上がPHPを使用してロゴ画像付きのQRコードを生成する2つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。