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 相关文章推荐
PHP4实际应用经验篇(1)
Oct 09 PHP
windows xp下安装pear
Dec 02 PHP
用PHP调用Oracle存储过程的方法
Sep 12 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
thinkPHP中_initialize方法实例分析
Dec 05 PHP
PHP赋值的内部是如何跑的详解
Jan 13 PHP
PHP反射实际应用示例
Apr 03 PHP
php数组和链表的区别总结
Sep 20 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 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单元测试框架PHPUnit用法详解
2019/01/23 PHP
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
vue二级路由设置方法
2018/02/09 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
2018/02/24 jQuery
微信小程序实现底部导航
2018/11/05 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
Python元字符的用法实例解析
2018/01/17 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
仓库主管的岗位职责
2013/12/04 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
结婚老公保证书
2015/02/26 职场文书
2015年学校管理工作总结
2015/07/20 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
Java基础-封装和继承
2021/07/02 Java/Android