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 Zip解压 文件在线解压缩的函数代码
May 26 PHP
PHP 图片文件上传实现代码
Dec 29 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
php获取随机数组列表的方法
Nov 13 PHP
PHP魔术方法__GET、__SET使用实例
Nov 25 PHP
Laravel 5框架学习之环境与配置
Apr 08 PHP
php判断用户是否手机访问代码
Jun 08 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
PHP与Perl之间知识点区别整理
Mar 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
多人战的战术与战略
2020/03/04 星际争霸
php安全配置 如何配置使其更安全
2011/12/16 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
PHP实现验证码校验功能
2017/11/16 PHP
javascript css styleFloat和cssFloat
2010/03/15 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
[03:02]生活中的Dendi之野外度假篇
2016/08/09 DOTA
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Numpy 多维数据数组的实现
2020/06/18 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
护理专业毕业生自荐信范文
2014/01/05 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
详解python字符串驻留技术
2021/05/21 Python