• 2007-07-02

    用 PHP 生成条形码 - [网页制作]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://chaochao.blogbus.com/logs/6272863.html

    1. <?php
    2. function UPCAbarcode($code)
    3. {
    4.     $lw = 2; $hi = 100;
    5.     $Lencode = array('0001101','0011001','0010011','0111101','0100011',
    6.                     '0110001','0101111','0111011','0110111','0001011');
    7.     $Rencode = array('1110010','1100110','1101100','1000010','1011100',
    8.                     '1001110','1010000','1000100','1001000','1110100');
    9.     $ends = '101'; $center = '01010';
    10.     /* UPC-A Must be 11 digits, we compute the checksum. */
    11.     if ( strlen($code) != 11 ) { die("UPC-A Must be 11 digits."); }
    12.     /* Compute the EAN-13 Checksum digit */
    13.     $ncode = '0'.$code;
    14.     $even = 0; $odd = 0;
    15.     for ($x=0;$x<12;$x++)
    16.     {
    17.         if ($x % 2) { $odd += $ncode[$x]; } else { $even += $ncode[$x]; }
    18.     }
    19.     $code.=(10 - (($odd * 3 + $even) % 10)) % 10;
    20.     /* Create the bar encoding using a binary string */
    21.     $bars=$ends;
    22.     $bars.=$Lencode[$code[0]];
    23.     for($x=1;$x<6;$x++)
    24.     {
    25.         $bars.=$Lencode[$code[$x]];
    26.     }
    27.     $bars.=$center;
    28.     for($x=6;$x<12;$x++)
    29.     {
    30.         $bars.=$Rencode[$code[$x]];
    31.     }
    32.     $bars.=$ends;
    33.     /* Generate the Barcode Image */
    34.     $img = ImageCreate($lw*95+30,$hi+30);
    35.     $fg = ImageColorAllocate($img, 0, 0, 0);
    36.     $bg = ImageColorAllocate($img, 255, 255, 255);
    37.     ImageFilledRectangle($img, 0, 0, $lw*95+30, $hi+30, $bg);
    38.     $shift=10;
    39.     for ($x=0;$x<strlen($bars);$x++)
    40.     {
    41.         if (($x<10) || ($x>=45 && $x<50) || ($x >=85)) { $sh=10; } else { $sh=0; }
    42.         if ($bars[$x] == '1') { $color = $fg; } else { $color = $bg; }
    43.         ImageFilledRectangle($img, ($x*$lw)+15,5,($x+1)*$lw+14,$hi+5+$sh,$color);
    44.     }
    45.     /* Add the Human Readable Label */
    46.     ImageString($img,4,5,$hi-5,$code[0],$fg);
    47.     for ($x=0;$x<5;$x++)
    48.     {
    49.         ImageString($img,5,$lw*(13+$x*6)+15,$hi+5,$code[$x+1],$fg);
    50.         ImageString($img,5,$lw*(53+$x*6)+15,$hi+5,$code[$x+6],$fg);
    51.     }
    52.     ImageString($img,4,$lw*95+17,$hi-5,$code[11],$fg);
    53.     /* Output the Header and Content. */
    54.     header("Content-Type: image/png");
    55.     ImagePNG($img);
    56. }
    57. UPCAbarcode('13322483157');
    58. ?>

    历史上的今天:


    收藏到:Del.icio.us