php生成EAN_13标准条形码实例


Posted in PHP onNovember 13, 2013

下面的就是生成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 left part coding type// 
  $Guide = array(1=>'AAAAAA','AABABB','AABBAB','ABAABB','ABBAAB','ABBBAA','ABABAB','ABABBA','ABBABA'); 
  $Lstart ='101'; 
  $Lencode = array("A" => array('0001101','0011001','0010011','0111101','0100011','0110001','0101111','0111011','0110111','0001011'), 
                   "B" => array('0100111','0110011','0011011','0100001','0011101','0111001','0000101','0010001','0001001','0010111')); 
  $Rencode = array('1110010','1100110','1101100','1000010','1011100', 
                   '1001110','1010000','1000100','1001000','1110100');       $center = '01010'; 
  $ends = '101'; 
  if ( strlen($code) != 13 ) 
   { die("UPC-A Must be 13 digits."); } 
$lsum =0; 
$rsum =0; 
  for($i=0;$i<(strlen($code)-1);$i++) 
  { 
    if($i % 2) 
{ 
 // $odd += $ncode[$x] 
  $lsum +=(int)$code[$i]; 
 }else{ 
  $rsum +=(int)$code[$i]; 
 } 
  } 
  $tsum = $lsum*3 + $rsum; 
    if($code[12] != (10-($tsum % 10))) 
{ 
   die("the code is bad!"); 
    }  

 // echo $Guide[$code[0]]; 
  $barcode = $Lstart; 
  for($i=1;$i<=6;$i++) 
  { 
    $barcode .= $Lencode [$Guide[$code[0]][($i-1)]] [$code[$i]]; 
  } 
  $barcode .= $center; 
  for($i=7;$i<13;$i++) 
  { 
    $barcode .= $Rencode[$code[($i)]] ; 
  } 
  $barcode .= $ends; 
    $img = ImageCreate($lw*95+60,$hi+30); 
  $fg = ImageColorAllocate($img, 0, 0, 0); 
  $bg = ImageColorAllocate($img, 255, 255, 255); 
  ImageFilledRectangle($img, 0, 0, $lw*95+60, $hi+30, $bg); 
  $shift=10; 
  for ($x=0;$x<strlen($barcode);$x++) { 
    if (($x<4) || ($x>=45 && $x<50) || ($x >=92))  
  {  
    $sh=10;  
  } else {  
    $sh=0;  
  } 
    if ($barcode[$x] == '1')  
{  
  $color = $fg; 
    } else {  
  $color = $bg;  
} 
    ImageFilledRectangle($img, ($x*$lw)+30,5,($x+1)*$lw+29,$hi+5+$sh,$color); 
  } 
  /* Add the Human Readable Label */ 
  ImageString($img,5,20,$hi+5,$code[0],$fg); 
  for ($x=0;$x<6;$x++) { 
    ImageString($img,5,$lw*(8+$x*6)+30,$hi+5,$code[$x+1],$fg); 
    ImageString($img,5,$lw*(53+$x*6)+30,$hi+5,$code[$x+7],$fg); 
  } 
 // ImageString($img,4,$lw*95+17,$hi-5,$code[12],$fg); 
  /* Output the Header and Content. */ 
  header("Content-Type: image/png"); 
  ImagePNG($img); 
} 
EAN_13('6901028055048'); 
?> 
PHP 相关文章推荐
PHP+MySQL5.0中文乱码解决方法
Nov 20 PHP
关于BIG5-HKSCS的解决方法
Mar 20 PHP
php 随机生成10位字符代码
Mar 26 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
thinkphp文件引用与分支结构用法实例
Nov 26 PHP
php中smarty变量修饰用法实例分析
Jun 11 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
laravel入门知识点整理
Sep 15 PHP
使用php计算排列组合的方法
Nov 13 #PHP
测试php函数的方法
Nov 13 #PHP
PHP中判断变量为空的几种方法小结
Nov 12 #PHP
php不允许用户提交空表单(php空值判断)
Nov 12 #PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 #PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 #PHP
PHP使用正则表达式清除超链接文本
Nov 12 #PHP
You might like
在PHP中利用XML技术构造远程服务(上)
2006/10/09 PHP
编写自己的php扩展函数
2006/10/09 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
2010/04/12 PHP
PHP fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
python fabric使用笔记
2015/05/09 Python
举例讲解Python中的算数运算符的用法
2015/05/13 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
Python 使用office365邮箱的示例
2020/10/29 Python
python中time tzset()函数实例用法
2021/02/18 Python
会计自我鉴定
2013/11/02 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
省三好学生申请材料
2014/01/22 职场文书
公司委托书怎么写
2014/08/02 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
初中学习计划书范文
2014/09/15 职场文书
教师考核表个人总结
2015/02/12 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技