功能是要写一个商品条形码功能,之前写二维码比较多,条形码没写过,记录一下。
需要用到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())然后果真好了,嘶!