PHP生成条形码 thinkphp5 + barcode 生成条形码

功能是要写一个商品条形码功能,之前写二维码比较多,条形码没写过,记录一下。
需要用到Barcode这个类库,打开这个页面,选择一个版本进行下载;
下载完毕后,解压到项目里面,我用的是框架是tp5,就直接给放到extend文件夹下面了
在这里插入图片描述
开始写代码
引用一下文件 “EXTEND_PATH” 这个如果你用的tp框架,没有的话 需要你自己定义一下,在public/index.php文件里面。

define('EXTEND_PATH', __DIR__ . '/../extend/');

引用Brcode文件

require_once (EXTEND_PATH.'/Barcode/class/BCGFontFile.php');
require_once (EXTEND_PATH.'/Barcode/class/BCGColor.php');
require_once (EXTEND_PATH.'Barcode/class/BCGDrawing.php');
require_once (EXTEND_PATH.'Barcode/class/BCGcode39.barcode.php');

生成条形码方法

//$imgurl  图片存储路径  $text  显示信息
 public function Brcode($imgUrl,$text){
        $color_black = new \BCGColor(0, 0, 0);
        $color_white = new \BCGColor(255, 255, 255);
        $font = new \BCGFontFile(EXTEND_PATH.'Barcode/font/Arial.ttf', 18);
        $drawException = null;
        try {
            $code = new \BCGcode39();
            $code->setScale(2);
            $code->setThickness(30);
            $code->setForegroundColor($color_black);
            $code->setBackgroundColor($color_white);
            $code->setFont($font);
            $code->parse($text);
        } catch(Exception $exception) {
            $drawException = $exception;
        }
        //这个地方需要主要  如果不需要存储图片 $imgurl就设置为空
        //如果需要存储本地   就传入图片路径地址即可
        $drawing = new \BCGDrawing($imgUrl, $color_white);
        if($drawException) {
            $drawing->drawException($drawException);
        } else {
            $drawing->setBarcode($code);
            $drawing->draw();
        }
     
        **$drawing->finish(\BCGDrawing::IMG_FORMAT_PNG);die();**
    }

开始调用

 public function BrcodeImage(){
        $file_dir = 'uploads/barcode/'.date('Y-m-d');
        if (!file_exists($file_dir)) {
            mkdir($file_dir,0755,true);
        }
        $name = rand(0,99999).time();
        $imgUrl = $file_dir.'/'.$name.'.png';
        $this->Brcode($imgUrl,'BLD'.time());
    }

示例:
在这里插入图片描述

开始生成的时候遇到一个情况,生成的数据乱码(如下图),然后谷歌搜索了一波,发现了一个帖子 说结尾的时候需要加个die();或者exit(),(代码示例最后一行结尾的那个die())然后果真好了,嘶!
一堆乱码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值