PHP生成海报通用class
  Lpsr6E2mxSUl 2023年12月05日 20 0

<?php
namespace app\common\util;

use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelLow;
use Endroid\QrCode\Label\Label;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use Endroid\QrCode\Writer\PngWriter;

class Bill
{
   /**
    * 海报 
    * 
    * 使用方式
    * use app\common\util\Bill;
    * Bill::go('0001','http://www.baidu.com','static/admin/images/show.png','["200","300"]')
    * 
    * @param string $file 图片索引
    * @param string $link 链接
    * @param string $addr 海报地址
    * @param string $position 生成图像位置
    * @param string $path 最终生成位置
    * @return mixed
    */
    public static function go($file,$link,$addr,$position=['100','100'],$path='play_bill')
    {
        if (!$addr||filter_var($addr, FILTER_VALIDATE_URL) !== false){
             return ['code'=>'201','msg'=>'请配置海报图片,须为本地'];
        }
        if (!file_exists('./'.$path.'/')) mkdir('./'.$path.'/', 0777, true);
        $new_file = './'.$path.'/' .$file . '.png';
        $writer = new PngWriter();
        $qrCode = QrCode::create($link)
            ->setEncoding(new Encoding('UTF-8'))
            ->setErrorCorrectionLevel(new ErrorCorrectionLevelLow())
            ->setSize(144)
            ->setMargin(10)
            ->setRoundBlockSizeMode(new RoundBlockSizeModeMargin())
            ->setForegroundColor(new Color(0, 0, 0))
            ->setBackgroundColor(new Color(255, 255, 255));
        $result = $writer->write($qrCode);
        header('Content-Type: '.$result->getMimeType());
        $result->saveToFile($new_file);
        $image = \think\Image::open(public_path().$addr);
        $image->water($new_file,$position)->save(public_path().$new_file);
        return ['msg'=>$new_file];
    }
}


欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

Don’t reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(^_^)

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月05日 0

暂无评论

推荐阅读
  NT5NRjELxLp1   27天前   34   0   0 PHP
  iALoCqVB8AGc   2023年12月25日   19   0   0 PHP
  yThMa20bw7iV   2024年02月19日   52   0   0 PHP
  NT5NRjELxLp1   2024年03月14日   56   0   0 PHP
Lpsr6E2mxSUl