php生成条形码的图片的实例详解


Posted in PHP onSeptember 13, 2017

php生成条形码的图片的实例详解

因为用户的需要  写了一个条形码;用php生成一个条形码的图片  这个大家应该比我要好很多的吧,在自己项目的根目录下建立一个测试文件(直接把下面的代码放进去运行一下看看,我也是抄袭别人的),在实际的项目中你可以将下面的代码封装到一个公共类文件下的一个函数,然后调用。

class testinfo{
  function UPCAbarcode($code) {
    $trans_code = $code;
    $lw = 2.2; $hi = 40;
    $Lencode = array('0001101','0011001','0010011','0111101','0100011',
        '0110001','0101111','0111011','0110111','0001011');
    $Rencode = array('1110010','1100110','1101100','1000010','1011100',
        '1001110','1010000','1000100','1001000','1110100');
    $ends = '101'; $center = '01010';
    /* Compute the EAN-13 Checksum digit */
    $ncode = '0'.$code;
    $even = 0; $odd = 0;
    for ($x=0;$x<12;$x++) {
      if ($x % 2) {
        $odd += $ncode[$x];
      } else { $even += $ncode[$x];
      }
    }
    $code.=(10 - (($odd * 3 + $even) % 10)) % 10;
    /* Create the bar encoding using a binary string */
    $bars=$ends;
    $bars.=$Lencode[$code[0]];
    
    for($x=1;$x<6;$x++) {
      $bars.=$Lencode[$code[$x]];
    }
    $bars.=$center;
    for($x=6;$x<12;$x++) {
      $bars.=$Rencode[$code[$x]];
    }
    $bars.=$ends;
    /* Generate the Barcode Image */
    $img = ImageCreate($lw*75+30,$hi-3);  // 95
    $fg = ImageColorAllocate($img, 0, 0, 0);
    $bg = ImageColorAllocate($img, 255, 255, 255);
    ImageFilledRectangle($img, 0, 0, $lw*75+30, $hi+30, $bg);
    $shift=10;
    for ($x=0;$x<strlen($bars);$x++) {
      if (($x<0) || ($x>=45 && $x<46) || ($x >=85)) {
        $sh=10;
      } else { $sh=0;
      }
      if ($bars[$x] == '1') {
        $color = $fg;
      } else { $color = $bg;
      }
      ImageFilledRectangle($img, ($x*$lw)+15,5,($x+1)*$lw+14,$hi+5+$sh,$color);
    }
    /* Add the Human Readable Label */
    ImageString($img,4,5,$hi-5,$code[0],$fg);
    for ($x=0;$x<5;$x++) {
      ImageString($img,5,$lw*(13+$x*6)+15,$hi+5,$code[$x+1],$fg);
      ImageString($img,5,$lw*(53+$x*6)+15,$hi+5,$code[$x+6],$fg);
    }
    ImageString($img,4,$lw*95-7,$hi,$code[11],$fg);
    /* Output the Header and Content. */
    header("Content-Type: image/png");
    ImagePNG($img);
  }
//}
echo UPCAbarcode('201212070099');

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
MYSQL环境变量设置方法
Jan 15 PHP
php判断字符以及字符串的包含方法属性
Aug 30 PHP
PHP 遍历XP文件夹下所有文件
Nov 27 PHP
php 执行系统命令的方法
Jul 07 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
Sep 12 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
Jul 04 PHP
php全排列递归算法代码
Oct 09 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
php简单统计中文个数的方法
Sep 30 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 PHP
php之可变函数的实例详解
Sep 13 #PHP
PHP实现一个多功能购物网站的案例
Sep 13 #PHP
php之可变变量的实例详解
Sep 12 #PHP
PHP清除缓存的几种方法总结
Sep 12 #PHP
PHP 传输会话curl函数的实例详解
Sep 12 #PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 #PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 #PHP
You might like
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
php SQL Injection with MySQL
2011/02/27 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
twig模板常用语句实例小结
2016/02/04 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
Python break语句详解
2014/03/11 Python
Python 列表list使用介绍
2014/11/30 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
Lucene推荐的分页方式是什么?
2015/12/07 面试题
创业大赛策划书
2014/03/01 职场文书
本科毕业生自荐信
2014/06/02 职场文书
年终工作总结范文2014
2014/11/27 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
Nginx 匹配方式
2022/05/15 Servers