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(3)
Oct 09 PHP
php下批量挂马和批量清马代码
Feb 27 PHP
php时区转换转换函数
Jan 07 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
PHP SPL标准库中的常用函数介绍
May 11 PHP
php实现的一段简单概率相关代码
May 30 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
php中strlen和mb_strlen用法实例分析
Nov 12 PHP
laravel创建类似ThinPHP中functions.php的全局函数
Nov 26 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
php多进程应用场景实例详解
Jul 22 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 cdata 处理(详细介绍)
2013/07/05 PHP
php实现水仙花数示例分享
2014/04/03 PHP
php检测文本的编码
2015/07/26 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
详解JavaScript的变量
2019/04/04 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
Python 正则表达式操作指南
2009/05/04 Python
Python的Django框架下管理站点的基本方法
2015/07/17 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
债务追讨授权委托书范本
2014/10/16 职场文书
看上去很美观后感
2015/06/10 职场文书
获奖感言怎么写
2015/07/31 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书