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 相关文章推荐
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
PHP+ajax分页实例简析
Dec 07 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
php图片上传类 附调用方法
May 15 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 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之static静态属性与静态方法实例分析
2015/07/30 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
2016/11/12 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
Python模拟登录12306的方法
2014/12/30 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Django实现文件上传下载
2019/10/06 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
解决django FileFIELD的编码问题
2020/03/30 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
马耳他航空公司官方网站:Air Malta
2019/05/15 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
物流管理专业大学生自荐信
2013/10/04 职场文书
办公室驾驶员岗位职责
2013/11/15 职场文书
物业门卫岗位职责
2013/12/28 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
丧事主持词
2015/07/02 职场文书
php中pcntl_fork详解
2021/04/01 PHP
Apache POI的基本使用详解
2021/11/07 Servers
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL