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 相关文章推荐
php购物网站支付paypal使用方法
Nov 28 PHP
php中并发读写文件冲突的解决方案
Oct 25 PHP
使用PHP静态变量当缓存的方法
Nov 13 PHP
解决php接收shell返回的结果中文乱码问题
Jan 23 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
Apr 22 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
php IP及IP段进行访问限制的代码
2008/12/17 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
javascript 播放器 控制
2007/01/22 Javascript
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
express框架下使用session的方法
2019/07/31 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
[03:46]DAC趣味视频-中文考试.mp4
2017/04/02 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
python Celery定时任务的示例
2018/03/13 Python
python实现猜数字小游戏
2020/03/24 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
linux面试题参考答案(5)
2014/09/01 面试题
值传递还是引用传递
2015/02/08 面试题
乡镇计划生育工作汇报
2014/10/28 职场文书
小学生读书笔记范文
2015/06/30 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书