PHP生成条形码大揭秘

1.什么是条形码?

百度百科定义:条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成平行线的图案。在日常生活中,条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件地点起止、类别、日期等许多信息。条形码编码格式具体请参考

打印出来的优惠券,商家需要用验证器读取条形码,来获得其有效性。

2.如何生成条形码?

首先找到强大的开源资料,在barcode官网下载barcodegen.1d-php5.v5.0.1.zip版本,然后解压文件放到你的Apache服务器的根目录下

2.1文件结构:

2.2具体解析

(1)class文件夹是已封装好生成条形码的类,只需要调用即可。

(2)index.php是一个可选择条件生成条形码的功能,是主程序的入口,而html文件夹是提供的被引用的代码,code39.php指的是指向默认的编码格式。

<?php
header('Location: html/code39.php');
?>

(3)test.php是另外一个例子,通过代码直接生成HELLO条形码。 

View Code  

<?php
// 引用class文件夹对应的类
require_once('class/BCGFontFile.php');
require_once('class/BCGColor.php');
require_once('class/BCGDrawing.php'); 

// 条形码的编码格式
require_once('class/BCGcode39.barcode.php'); 

// 加载字体大小
$font = new BCGFontFile('./class/font/Arial.ttf', 18); 

//颜色条形码
$color_black = new BCGColor(0, 0, 0);
$color_white = new BCGColor(255, 255, 255); 

$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('HELLO'); // 条形码需要的数据内容
} catch(Exception $exception) {
  $drawException = $exception;
} 

//根据以上条件绘制条形码
$drawing = new BCGDrawing('', $color_white);
if($drawException) {
  $drawing->drawException($drawException);
} else {
  $drawing->setBarcode($code);
  $drawing->draw();
} 

// 生成PNG格式的图片
header('Content-Type: image/png'); 

$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
?>

3.实际应用

对于上面有个大概的了解后,下面我们可以重新整合下代码,更加方便的使用它。

首先新建buildcode.php文件中,根据test.php文件进行改写,从请求的文件中获取数据:

1).条形码的编码格式

2).条形码需要的数据内容

View Code
<?php
// Including all required classes
require_once('class/BCGFontFile.php');
require_once('class/BCGColor.php');
require_once('class/BCGDrawing.php');
$codebar = $_REQUEST['codebar']; //条形码将要数据的内容
// Including the barcode technology
require_once('class/'.$codebar.'.barcode.php');
// Loading Font
$font = new BCGFontFile('./class/font/Arial.ttf', 12);
// The arguments are R, G, B for color.
$color_black = new BCGColor(0, 0, 0);
$color_white = new BCGColor(255, 255, 255);
$drawException = null;
try {
  $code = new $codebar();//实例化对应的编码格式
  $code->setScale(2); // Resolution
  $code->setThickness(23); // Thickness
  $code->setForegroundColor($color_black); // Color of bars
  $code->setBackgroundColor($color_white); // Color of spaces
  $code->setFont($font); // Font (or 0)
  $text = $_REQUEST['text']; //条形码将要数据的内容
  $code->parse($text);
} catch(Exception $exception) {
  $drawException = $exception;
}
/* Here is the list of the arguments
 - Filename (empty : display on screen)
 - Background color */
$drawing = new BCGDrawing('', $color_white);
if($drawException) {
  $drawing->drawException($drawException);
} else {
  $drawing->setBarcode($code);
  $drawing->draw();
}
// Header that says it is an image (remove it if you save the barcode to a file)
header('Content-Type: image/png');
// Draw (or save) the image into PNG format.
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
?>

然后新建test.html文件,向buildcode.php请求数据

<!DOCTYPE html>
<html>
<head>
<title>Test with embedded image</title>
</head>
<body>
 <img src="buildcode.php?codebar=BCGcode39&text=abc123"/>
</body>
</html>

最后进行访问,浏览器直接生成png格式的条形码

其中codebar支持的编码格式可以由用户请求所得:

/*'BCGcodabar','BCGcode11','BCGcode39','BCGcode39extended','BCGcode93',  
'BCGcode128','BCGean8','BCGean13','BCGisbn','BCGi25','BCGs25','BCGmsi',  
'BCGupca','BCGupce','BCGupcext2','BCGupcext5','BCGpostnet','BCGothercode'*/ 
剩下的就是验证了

4.验证

我们如何验证条形码是否有效,即能否读出条形码中的内容。

先将图片保存下来,然后访问官网提供的验证功能,将图片上传就Ok了! 

今天和大家一起揭秘了php如何生成条形码的,希望大家可以对条形码的形成有个大概的了解,对今后的学习有所帮助。

(0)

相关推荐

  • php生成条形码的图片的实例详解

    php生成条形码的图片的实例详解 因为用户的需要  写了一个条形码:用php生成一个条形码的图片  这个大家应该比我要好很多的吧,在自己项目的根目录下建立一个测试文件(直接把下面的代码放进去运行一下看看,我也是抄袭别人的),在实际的项目中你可以将下面的代码封装到一个公共类文件下的一个函数,然后调用. class testinfo{ function UPCAbarcode($code) { $trans_code = $code; $lw = 2.2; $hi = 40; $Lencode =

  • php实现在线生成条形码示例分享(条形码生成器)

    复制代码 代码如下: <?phpdefine('IN_CB',true);include('header.php'); $keys = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','-','.',' ','$','/','+','%'); $n

  • php实现生成code128条形码的方法详解

    本文实例讲述了php实现生成code128条形码的方法.分享给大家供大家参考,具体如下: 效果图: <?php class BarCode128 { const STARTA = 103; const STARTB = 104; const STARTC = 105; const STOP = 106; private $unit_width = 1; //单位宽度 缺省1个象素 private $is_set_height = false; private $width = -1; priva

  • php生成EAN_13标准条形码实例

    下面的就是生成EAN_13标准的条码的PHP方法,需要php+gd 环境    复制代码 代码如下: <? function EAN_13($code) {   //一个单元的宽度   $lw = 2;   //条码高    $hi = 100;   // the guide code is no coding,is used to show the left part coding type//   // Array guide is used to record the EAN_13 is

  • PHP生成条形码大揭秘

    1.什么是条形码? 百度百科定义:条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符.常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成平行线的图案.在日常生活中,条形码可以标出物品的生产国.制造厂家.商品名称.生产日期.图书分类号.邮件地点起止.类别.日期等许多信息.条形码编码格式具体请参考 打印出来的优惠券,商家需要用验证器读取条形码,来获得其有效性. 2.如何生成条形码? 首先找到强大的开源资料,在barcode官网下

  • Java zxing生成条形码和二维吗代码实例

    在如今的生活中,二维码随处可见,二维码的出现既减少了宣传纸张的浪费,又方便了人们的生活.这一篇我来说说 Java 利用第三方 Jar 包 zxing 生成二维码. 依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.3</version> </dependency> <

  • C#生成条形码图片的简单方法

    本文实例讲述了C#生成条形码图片的简单方法.分享给大家供大家参考.具体实现方法如下: 实现原理: 其实Windows本身就有一个字体是用来显示条形码的. 只要将数字改为这种字体就变成了条形码. windows字体库下,有如下八种字体可以用来将数字转换成条形码: Code39AzaleaNarrow1 Code39AzaleaNarrow2 Code39AzaleaNarrow3 Code39AzaleaRegular1 Code39AzaleaRegular2 Code39AzaleaWide1

  • C#实现用于生成条形码的类

    本文实例讲述了C#实现用于生成条形码的类.分享给大家供大家参考.具体如下: 这个C#类可以用来生成39码 12位标准条形码 using System.Collections; using System.Text.RegularExpressions; namespace DotNet.Utilities { public class BarCodeToHTML { public static string get39(string s, int width, int height) { Hash

  • 基于C#生成条形码操作知识汇总附源码下载

    1. 介绍 1.1 条形码 条形码(barcode):是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符. 1.2 条形码分类 可分为一维条形码和二维条形码: 一维条形码:只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息. 二维条形码:在水平和垂直方向的二维空间存储信息的条形码. 1.3 第三方类库:ZXing.Net 1.3.1 说明 ZXing 是一个可生成和读取 1D/2D(1维/2维) 条形码的开源类库.原先是Java版本,后由第三方

  • C#利用ZXing.Net生成条形码和二维码

    本文是利用ZXing.Net在WinForm中生成条形码,二维码的小例子,仅供学习分享使用,如有不足之处,还请指正. 什么是ZXing.Net? ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口.而ZXing.Net是ZXing的端口之一. 在工程中引用ZXing.Net 在项目中,点击项目名称右键-->管理NuGet程序包,打开NuGet包管理器窗口,进行搜索下载即可,如下图所示: ZXing.Net关键类结构图 包括Reader[识

  • Android生成条形码和二维码功能

    背景: 随着移动互联网的普及以及智能终端设备的广泛应用,移动支付变得越来越便捷,通过扫描二维码代替传统的刷卡行为.那么作为开发者而言生成二维码成为了一项必备技能. 准备: 使用zxing包 implementation "com.google.zxing:core:3.3.1" 核心代码: package com.wangpengpro.h5test.utils; import android.graphics.Bitmap; import com.google.zxing.Barco

  • thinkPHP框架实现生成条形码的方法示例

    本文实例讲述了thinkPHP框架实现生成条形码的方法.分享给大家供大家参考,具体如下: 在做之前我们先下载barcode类,想下载该类可以点击此处本站下载. 我们在后台写一个方法代码如下: //生成条形码 public function barcode(){ import('@.ORG.Util.barcode.BCGFontFile');//字体类 import('@.ORG.Util.barcode.BCGColor');//字体颜色类 import('@.ORG.Util.barcode

  • 基于jsbarcode 生成条形码并将生成的条码保存至本地+源码

    引言 JsBarcode是一个用JavaScript编写的条形码生成器.它支持多种条形码格式,可在浏览器和Node.js中使用.如果你在项目中使用了jquery也可以使用jquery,但它不是依赖项. 导读 以前生成条码都是外网网站上生成,因生产环境在内网中,上不了外网,只能在项目中生成相应规则,故将此方法整理下来. html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> &

随机推荐