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 字符串正则替换函数preg_replace使用说明
Jul 15 PHP
PHP 年龄计算函数(精确到天)
Jun 07 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
php自定义session示例分享
Apr 22 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
PHP判断函数是否被定义的方法
Jun 21 PHP
PHP容器类的两种实现方式示例
Jul 24 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
PHP实现简单的协程任务调度demo示例
Feb 01 PHP
Git命令之分支详解
Mar 02 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 ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
Javascript 函数中的参数使用分析
2010/03/27 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
Python中的self用法详解
2019/08/06 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
pycharm永久激活超详细教程
2020/10/29 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
澳大利亚相机之家:Camera House
2017/11/30 全球购物
德国购买门票网站:ADticket.de
2019/10/31 全球购物
Linux文件操作命令都有哪些
2016/07/23 面试题
采购主管工作职责
2013/12/12 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
捐资助学倡议书
2014/04/15 职场文书
齐云山导游词
2015/02/06 职场文书
创业计划书之养殖业
2019/10/11 职场文书
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技