Home  >  Article  >  php教程  >  PHP生成条形码实现程序

PHP生成条形码实现程序

WBOY
WBOYOriginal
2016-06-13 10:01:491129browse

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

 代码如下 复制代码
  
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     {
        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     {
        $bars.=$Lencode[$code[$x]];
    }
  
    $bars.=$center;
  
    for($x=6;$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=45 && $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     {
        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');
  
?>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn