PHP 生成透明图片 透明海报二维码

   /**
     * 生成车贴
     *
     */
    private function makeCarPoster($user_id)
    {
        $code ='邀请码';
        $code_url = 'http://www.xxx.com?id=' . $code;
        // 短链接
        vendor('autoload');  //tp框架引入微信插件
        $wx_qr = new \WeChat\Qrcode([
            'appid'     => '',
            'appsecret' => '',
            'mch_id'    => '',
            'mch_key'   => '',
        ]);
        $code_url = $wx_qr->shortUrl($code_url);
        if ($code_url['errcode'] !== 0) {
            if (empty($order)) $this->error('短链接生成失败');
        }
        $code_url = $code_url['short_url'];
 
        // 引入phpqrcode 生成二维码
        Vendor('phpqrcode.phpqrcode');
        // 生成二维码
        $file = 'Uploads/CarPoster/QRcode/' . $code . '.png';
        if (!file_exists($file)) {
            $url = urldecode($code_url);
            \QRcode::png($url, $file, 'L', 5, 0);   // $url 二维码内容  $file 保存路径  L容错  5 像素 0 外边距、外白边
        }
        $data = [
            'name'       => $code . '-' . date('YmdHis'),
            'bigImgPath' => "Uploads/CarPoster/6.png", // 海报、车贴背景图
            'qCodePath'  => $file,  // 二维码路径
            'left'       => '100',  // 二维码定位
            'top'        => '500',
        ];
        // 生成图保存目录
        $data['filename'] = 'Uploads/CarPoster/' . $data['name'] . ".png";
 
        $this->createImage($data);
        @unlink($file);// 删除二维码
        return $data;
    }
 
    /**
     * 创建图
     *
     * @param $data
     * Date: 2019/9/2
     * Time: 10:41
     * Author:sym
     */
    private function createImage($data)
    {
        $left = isset($data['left']) ? $data['left'] : 100;
        $top = isset($data['top']) ? $data['top'] : 100;
        
        // 背景资源
        $image = imagecreatefrompng($data['bigImgPath']);
        imagesavealpha($image, true);
        imagealphablending($image, false);
        imagefilter($image, IMG_FILTER_COLORIZE, 0, 0, 0, 0);
        // 二维码资源
        $qCodeImg = imagecreatefromstring(file_get_contents($data['qCodePath']));
        list($qCodeWidth, $qCodeHight, $qCodeType) = getimagesize($data['qCodePath']);
        imagecopymerge($image, $qCodeImg, $left, $top, 0, 0, $qCodeWidth, $qCodeHight, 100);
 
        imagepng($image, $data['filename'], 0);
        imagedestroy($image);
        imagedestroy($qCodeImg);
    }
 
    /**
     * 下载文件
     *
     * @param string $file_url
     * @param string $name
     * Date: 2019/8/29
     * Time: 09:51
     * Author:sym
     */
    private function downFile($file_url, $name)
    {
        $name = $name . '-' . date("Ymd-H:i:m");
        header("Content-type:  application/octet-stream ");
        header("Accept-Ranges:  bytes ");
        header("Content-Disposition:  attachment;  filename= {$name}.png");
        header("Accept-Length: " . readfile($file_url));
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值