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环境――Appserv
Dec 13 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
php下通过伪造http头破解防盗链的代码
Jul 03 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
Apr 09 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
PHP性能分析工具XHProf安装使用教程
May 13 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
PHP应用跨时区功能的实现方法
Mar 21 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实现多张图片上传加水印技巧
2013/04/18 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
基于jQuery的日期选择控件
2009/10/27 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
JS &amp; JQuery 动态添加 select option
2016/06/08 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
让Python代码更快运行的5种方法
2015/06/21 Python
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
python2 与python3的print区别小结
2018/01/16 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
Python使用贪婪算法解决问题
2019/10/22 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
瑞士国际航空官网:SWISS
2016/07/21 全球购物
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
经典大学生求职信范文
2014/01/06 职场文书
解除劳动合同协议书
2014/04/14 职场文书
保护环境倡议书300字
2014/05/19 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
pytorch中的 .view()函数的用法介绍
2022/03/17 Python
Python字符串格式化方式
2022/04/07 Python