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 相关文章推荐
使用Xdebug调试和优化PHP程序之[1]
Apr 17 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 PHP
PHP判断是否有Get参数的方法
May 05 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
laravel框架邮箱认证实现方法详解
Nov 22 PHP
如何利用PHP实现上传图片功能详解
Sep 24 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的ajax框架xajax入门与试用介绍
2010/12/19 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
js中return false(阻止)的用法
2013/08/14 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
详解Vue源码学习之双向绑定
2019/04/10 Javascript
小程序实现分类页
2019/07/12 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
python编写爬虫小程序
2015/05/14 Python
使用python实现个性化词云的方法
2017/06/16 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
世界上最大的二手相机店:KEN
2017/05/17 全球购物
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
Noon埃及:埃及在线购物
2019/11/26 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
村官学习十八大感想
2014/01/15 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
经营理念标语
2014/06/21 职场文书
2015年财政所工作总结
2015/04/25 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
办公室管理规章制度
2015/08/04 职场文书
外出学习心得体会范文
2016/01/18 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
MySQL约束超详解
2021/09/04 MySQL