十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
php生成条形码的图片的实例详解
成都创新互联主要从事成都网站建设、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务回民,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
因为用户的需要
写了一个条形码;用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;$x12;$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;$x6;$x++)
{
$bars.=$Lencode[$code[$x]];
}
$bars.=$center;
for($x=6;$x12;$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;$xstrlen($bars);$x++)
{
if
(($x0)
||
($x=45
$x46)
||
($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;$x5;$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');
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
如果条码采集器没有损坏的话,你扫描的东西的条码一定是扫过第二次的时候才报的重复,你只需要删除当前扫描的条码数据即可。如果一直报重复,无法继续扫描的情况,那就是程序损坏了,更坏程序,重装一下。
Header("Content-type: image/jpeg");//设置文件头
$im = imagecreatefromjpeg("D:\1.jpg");//返回一图像标识符,代表了从给定的文件名取得的图像。
Imagejpeg($im,'',20);//输出到浏览器
ImageDestroy($im);//销毁
试试这个行不行。
你可以弄一个显示专门显示
数组
的,最后结束了做一个写入excel表格处理,那你的数组数据都存excel里了,以后你随便要用origin啊什么
软件
来处理导入就很方便了
?php
function UPCAbarcode($code) {
$lw = 2; $hi = 100;
$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';
/* UPC-A Must be 11 digits, we compute the checksum. */
if
( strlen($code) != 11 ) { die("UPC-A Must be 11 digits."); }
/* Compute the
EAN-13 Checksum digit */
$ncode = '0'.$code;
$even = 0; $odd = 0;
for ($x=0;$x12;$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;$x6;$x++)
{
$bars.=$Lencode[$code[$x]];
}
$bars.=$center;
for($x=6;$x12;$x++) {
$bars.=$Rencode[$code[$x]];
}
$bars.=$ends;
/* Generate the Barcode Image */
$img =
ImageCreate($lw*95+30,$hi+30);
$fg = ImageColorAllocate($img, 0, 0,
0);
$bg = ImageColorAllocate($img, 255, 255, 255);
ImageFilledRectangle($img, 0, 0, $lw*95+30, $hi+30, $bg);
$shift=10;
for ($x=0;$xstrlen($bars);$x++) {
if (($x10) || ($x=45
$x50) || ($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;$x5;$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+17,$hi-5,$code[11],$fg);
/* Output the Header and
Content. */
header("Content-Type: image/png");
ImagePNG($img);
}
UPCAbarcode('12345678901');
?