首页 > php图像处理 > PHP生成条形码实现程序

PHP生成条形码实现程序

条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符,常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成平行线的图案对于上面有个大概的了解后,下面我们可以重新整合下代码,更加方便的使用它,代码如下:

 <?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 < strlen($bars); $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('13322483157');
?>

               
               

本文地址:http://www.phprm.com/tuxiang/fs1079.html

转载随意,但请附上文章地址:-)

标签:php 实现程序 条形码

相关文章

发表留言