php 生产一维码,透过 PHP 生成 一维码
通过 PHP 生成 一维码
此代码来自 http://www.nixiaofeng.com/110.html
13) die('条码长度不正确');
if (strlen($code) == 12) {
// 计算校验位
$lsum = 0;
$rsum = 0;
for($i=1; $i<=strlen($code); $i++) {
if($i % 2) {
$lsum += (int)$code[$i-1];
}else{
$rsum += (int)$code[$i-1];
}
}
$tsum = $lsum + $rsum * 3;
$chkdig = 10 - ($tsum % 10);
if ($chkdig == 10) $chkdig = 0;
$code .= $chkdig;
}
// 定义起始付
$start = '101';
// 定义中止符
$end = '101';
// 定义中间分隔符
$center = '01010';
// 定义左资料码
$Guide = array(0=>'AAAAAA','AABABB','AABBAB','AABBBA','ABAABB','ABBAAB','ABBBAA','ABABAB','ABABBA','ABBABA');
// 定义左侧码,分为“A”、“B”两种
$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'));
// 定义右侧码,统一为“C”编码
$Rencode = array('1110010','1100110','1101100','1000010','1011100','1001110','1010000','1000100','1001000','1110100');
// 编码起始符
$barcode = $start;
// 编码左资料位
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 .= $end;
// 定义每个条码单元的宽度和高度,单位是像素
$width = 2;
$height = 40;
// 定义起始符、中止符、中间分隔符的高度增量
$increment = 10;
// 创建方形(×95是因为整个条码共95个单元,+60和+30是给条码图片周围留空白边框)
$img = ImageCreate($width*95+60,$height+30); // 目前这个方形是透明的
// “1”的颜色(黑)与“0”的颜色(白)
$fg = ImageColorAllocate($img, 0, 0, 0);
$bg = ImageColorAllocate($img, 255, 255, 255);
// 以“0”的颜色(白色),填充整个方形
ImageFilledRectangle($img, 0, 0, $width*95+60, $height+30, $bg);
// 循环编码后的每一个单元,输出条码图形
for ($x=0; $x=92)为中止符,($x>=45 && $x<50)为中间分隔符
// 这3个需要将高度增加
if (($x<4) || ($x>=45 && $x<50) || ($x>=92)) {
$increment = 10;
} else {
$increment = 0;
}
// 当编码值为“1”时,输出黑色;当编码值为“0”时,输出白色
if ($barcode[$x] == '1') {
$color = $fg;
} else {
$color = $bg;
}
ImageFilledRectangle($img, ($x*$width)+30,5,($x+1)*$width+29,$height+$increment,$color);
}
ImageString($img, 5, 20, $height+5, $code[0], $fg);
for ($x=0; $x<6; $x++) {
// 左侧识别码
ImageString($img, 5, $width*(8+$x*6)+30, $height+5, $code[$x+1], $fg);
// 右侧识别码
ImageString($img, 5, $width*(53+$x*6)+30, $height+5, $code[$x+7], $fg);
}
header("Content-Type: image/jpeg");
ImageJPEG($img, "", 100);
}
?>
输入EAN-13条形码(如果输入12位长度,将自动计算校验位)
相关文章
相关视频
php 生产一维码,透过 PHP 生成 一维码相关推荐
- java 验证码 源码_java 验证码生成源码
fontList = new ArrayList(); fontList.add(new Font("微软 雅黑", Font.LAYOUT_NO_START_CONTEXT, 3 ...
- IMEI 码的校验和生成
IMEI 码的校验和生成 文章目录 IMEI 码的校验和生成 IMEI 码 Luhn算法 代码实现C IMEI 码 IMEI 码,即手机的串号.它是 International Mobile Equi ...
- 一物一码(10):二维码的安全管控
大家好,我是老胡,今天我们来讲一物一码安全方面的内容.有一天,我们家小朋在幼儿园上了交通安全课,回家后,给我说"爸爸,老师说的:没有安全,就没有快乐".这句话说的真的非常好,没有安 ...
- java生成一维码和二维码
这两天想了解一下二维码是怎样生成的.然后在网上看了很多资料,也有很多源码可以直接用的.我也没有自己写,也是拿着源码进行看和修改的,然后生成自己想要的二维码和一维码,还是很不错的,所以分享一下. 首先第 ...
- c语言 生成一维条形码,C# BarcodeLib。dll 生成一维码的问题
public Image GetImage(int height,int width, BarcodeLib.TYPE type,string code) { ...
- java 打印一维码_java生成一维码
/** * * 一维码图片生成器 * @author winter.liu * */ public class OneBarcodeUtil { /** * 生成一维码 * @param value ...
- 【react】扫条形一维码,二维码,生成一维条形码
toB端常用的扫码功能,当时找npm找组件很费时间所以留着自用,有需要的盆友也欢迎抱走. 一维码 扫码枪扫条形码 条码一般的扫码工具是像超市那样的扫码枪 生命周期里一直在监听扫码枪扫码键是否按下 us ...
- Qt zint (生成一维码/二维码)
zint 编译 源码添加到工程 生成一维码 生成DM码 DM码识别 下载源码1: (笔者下载最新的zint-master.zip(20210126),不清楚是不是官方维护的github仓库) http ...
- 用java生成一维码
1.把一个订单或者商品编号生成一维码 [java] view plaincopy import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.i ...
最新文章
- jmeter异步请求测试怎么测试_JMeter接口测试之HTTP请求默认值
- 汪潮涌:AI创业落地为王,技术和算法难以成为核心壁垒
- 相依關係: XXXXXXXXX但它卻無法安裝
- ssl提高组国庆模拟赛【2018.10.5】
- hihocoder第238周:杨氏矩阵的个数
- springcloud入门实战进阶百度云,【MyBatis 5(1)
- python os模块详细_python中os模块函数方法详解最全最新
- Latex Error: File ended while scanning use of \@xdblarge
- 《算法图解》第八章之贪婪算法
- c语言程序设计环境软件下载,c语言编程软件
- 业务流程图绘制方法经验谈(上篇)
- Java程序员必读精选书籍分享,强烈推荐
- java中modifier_Java Modifier工具类
- finecms aip.php漏洞,代码审计| FineCMS的GetShell姿势
- 计算机的屏幕保护怎样开启,win10如何关闭和开启屏幕保护
- vlog用什么来剪辑?分享1个剪辑生活vlog的技巧
- Overload(重载)
- 网易全面复盘直播答题,深度剖析产品架构的难点与坑|免费直播
- 3dsmax-3dsmax技巧
- 《思考致富》第一章-心想事成
热门文章
- 网页视频之H5+Mse
- mysql 命令as 使用_【翻译自mos文章】使用asmcmd命令在本地和远程asm实例之间拷贝as...
- 我的java学习之旅班刊_我的java学习路程
- python爬虫视频课程推荐_Python 爬虫实战案例(推荐小白研究)
- MyBatis学习笔记01
- 进阶15 IO流+字节字符输入输出+IO异常处理+属性集+缓冲流+各种编码+序列化
- python三天速成_python学习第三天
- ins与apache的区别_既然nginx比apache快,为什么nginx没有取代apache?
- editor修改样式 vue_vue修改富文本中的元素样式
- python转移矩阵_使用Python / Numpy中的单词构建转换矩阵