2021-02-26 16:16:17 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @filesource imageWithLogo.php
|
|
|
|
* @created 18.11.2020
|
|
|
|
* @author smiley <smiley@chillerlan.net>
|
|
|
|
* @copyright 2020 smiley
|
|
|
|
* @license MIT
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace chillerlan\QRCodeExamples;
|
|
|
|
|
|
|
|
use chillerlan\QRCode\{QRCode, QROptions};
|
|
|
|
|
|
|
|
require_once __DIR__.'/../vendor/autoload.php';
|
|
|
|
|
|
|
|
$data = 'https://www.youtube.com/watch?v=DLzxrzFCyOs&t=43s';
|
|
|
|
/**
|
2021-11-15 15:33:35 +00:00
|
|
|
* @property int $logoSpaceWidth
|
|
|
|
* @property int $logoSpaceHeight
|
2021-02-26 16:16:17 +00:00
|
|
|
*
|
|
|
|
* @noinspection PhpIllegalPsrClassPathInspection
|
|
|
|
*/
|
|
|
|
class LogoOptions extends QROptions{
|
2021-11-15 15:33:35 +00:00
|
|
|
// size in QR modules, multiply with QROptions::$scale for pixel size
|
2022-07-02 14:01:51 +00:00
|
|
|
protected int $logoSpaceWidth;
|
|
|
|
protected int $logoSpaceHeight;
|
2021-02-26 16:16:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
$options = new LogoOptions;
|
|
|
|
|
|
|
|
$options->version = 7;
|
|
|
|
$options->eccLevel = QRCode::ECC_H;
|
|
|
|
$options->imageBase64 = false;
|
2021-11-15 15:33:35 +00:00
|
|
|
$options->logoSpaceWidth = 13;
|
|
|
|
$options->logoSpaceHeight = 13;
|
2021-02-26 16:16:17 +00:00
|
|
|
$options->scale = 5;
|
|
|
|
$options->imageTransparent = false;
|
|
|
|
|
|
|
|
header('Content-type: image/png');
|
|
|
|
|
|
|
|
$qrOutputInterface = new QRImageWithLogo($options, (new QRCode($options))->getMatrix($data));
|
|
|
|
|
|
|
|
// dump the output, with an additional logo
|
|
|
|
echo $qrOutputInterface->dump(null, __DIR__.'/octocat.png');
|