Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/2/17 7:45:42
用PHP实现登陆验证码(类似条行码状)_[PHP教程]

用PHP实现登陆验证码(类似条行码状)_[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;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*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;x if ((x<10) || (x>=45 && x<50) || (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+17,hi-5,code[11],fg);
/* Output the Header and Content. */
header("Content-Type: image/png");
ImagePNG(img);
}

UPCAbarcode('12345678901');

?>

来源:网络






If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759