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水印
Mar 16 PHP
抓取YAHOO股票报价的类
May 15 PHP
PHP 日期加减的类,很不错
Oct 10 PHP
PHP JSON 数据解析代码
May 26 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
php使用递归计算文件夹大小
Dec 24 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
用php实现分页效果的示例代码
Dec 10 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
PHP中实现中文字符进制转换原理分析
2011/12/06 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
js数组操作学习总结
2013/11/04 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
详解nuxt sass全局变量(公共scss解决方案)
2018/06/27 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
python采用getopt解析命令行输入参数实例
2014/09/30 Python
Python函数中定义参数的四种方式
2014/11/30 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
python简单贪吃蛇开发
2019/01/28 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
结对共建协议书
2014/08/20 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
给领导敬酒词
2015/08/12 职场文书