1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- defined('ONLY_ONLY_ONLY') or exit('Access Denied');
- use Endroid\QrCode\Color\Color;
- use Endroid\QrCode\Builder\Builder;
- use Endroid\QrCode\Encoding\Encoding;
- use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh;
- use Endroid\QrCode\Label\Alignment\LabelAlignmentCenter;
- use Endroid\QrCode\Label\Font\NotoSans;
- use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
- use Endroid\QrCode\Writer\PngWriter;
- require_once WEB_PHY_ROOT."/base/composer/vendor/autoload.php";
- function lib_qrbuild($png2jpg, $data, $savePath = ""){
- return lib_qrbuild_core($png2jpg, $data, $savePath);
- }
- function lib_qrbuild2($png2jpg, $data, $savePath, $size, $margin){
- return lib_qrbuild_core($png2jpg, $data, $savePath, $size, $margin);
- }
- function lib_qrbuild3($png2jpg, $data, $savePath, $foreColor, $backColor){
- return lib_qrbuild_core($png2jpg, $data, $savePath, 100, 4, $foreColor, $backColor);
- }
- function lib_qrbuild4($png2jpg, $data, $savePath, $label,$labelFont, $logPath){
- return lib_qrbuild_core($png2jpg, $data, $savePath, 100, 4, null, null,$label,$labelFont, $logPath);
- }
- function lib_qrbuild_core(
- $png2jpg,
- $data,
- $savePath = "",
- $size = 100,
- $margin = 4,
- $foreColor = null,
- $backColor = null,
- $label = null,
- $labelFont = null,
- $logPath = ""
- ) {
- $size=intval($size);
- if($size<6) $size=6;
- if($size>600) $size=600;
- $margin=intval($margin);
- if($margin<0) $margin=0;
- if($margin>20) $margin=20;
- $build = Builder::create()
- ->writer($png2jpg=="png"?new PngWriter():new PngWriter())
- ->writerOptions([])
- ->data($data)
- ->encoding(new Encoding('UTF-8'))
- ->errorCorrectionLevel(new ErrorCorrectionLevelHigh())
- ->size($size)
- ->margin($margin)
- ->foregroundColor($foreColor?$foreColor:new Color(0, 0, 0))
- ->backgroundColor($backColor?$backColor:new Color(255, 255, 255))
- ->roundBlockSizeMode(new RoundBlockSizeModeMargin());
- if(!empty($label)){
- $build->labelText($label)
- ->labelFont($labelFont?$labelFont:new NotoSans(14))
- ->labelAlignment(new LabelAlignmentCenter());
- }
- if(file_exists($logPath)){
- $build->logoPath($logPath);
- }
- $result = $build->build();
- // echo $result->getString();
- if(!empty($savePath)){
- // Save it to a file
- $result->saveToFile($savePath);
- }else{
- // base64 Generate a data URI to include image data inline (i.e. inside an <img> tag)
- return $result->getDataUri();
- }
- }
|