首页 > php图像处理 > php生成条形码代码

php生成条形码代码

php生成条形码就是必须生成图片了,在php生成图片我们就必须用到gd库来实现了,所以你得找到你的将php.ini文件找到extension=php_gd2.dll 去掉前面的;,你就可以使用些实例了.

php生成条形码代码如下:

<?php
class cd_barra {
    var $file;
    var $into;
    var $cd_barras = array(
        0 => "00110",
        1 => "10001",
        2 => "01001",
        3 => "11000",
        4 => "00101",
        5 => "10100",
        6 => "01100",
        7 => "00011",
        8 => "10010",
        9 => "01010"
    );
    function cd_barra($value, $files, $into = 1) {
        $lower = 1;
        $hight = 55;
        $this->into = $into;
        for ($count1 = 9; $count1 >= 0; $count1--) {
            for ($count2 = 9; $count2 >= 0; $count2--) {
                $count = ($count1 * 10) + $count2;
                $text = "";
                for ($i = 1; $i < 6; $i++) {
                    $text.= substr($this->cd_barras[$count1], ($i - 1) , 1) . substr($this->cd_barras[$count2], ($i - 1) , 1);
                }
                $this->cd_barras[$count] = $text;
            }
        }
        //$img         = imagecreate($lower*95+300,$hight+30);
        $img = imagecreate(145, 55);
        //$img         = imagecreate(395,73);
        $cl_black = imagecolorallocate($img, 0, 0, 0);
        $cl_white = imagecolorallocate($img, 255, 255, 255);
        imagefilledrectangle($img, 0, 0, $lower * 95 + 1000, $hight + 30, $cl_white);
        imagefilledrectangle($img, 1, 1, 1, 53, $cl_black);
        imagefilledrectangle($img, 2, 1, 2, 53, $cl_white);
        imagefilledrectangle($img, 3, 1, 3, 53, $cl_black);
        imagefilledrectangle($img, 4, 1, 4, 53, $cl_white);
        $thin = 1;
        if (substr_count(strtoupper($_server['server_software']) , "win32")) {
            //o tamanho para windows tem que ser 3
            // for windows, the wide bar has = 3
            $wide = 3;
        } else {
            $wide = 2.72;
        }
        $pos = 5;
        $text = $value;
        if ((strlen($text) % 2) <> 0) {
            $text = "0" . $text;
        }
        while (strlen($text) > 0) {
            $i = round($this->barra_left($text, 2));
            $text = $this->barra_right($text, strlen($text) - 2);
            $f = $this->cd_barras[$i];
            for ($i = 1; $i < 11; $i+= 2) {
                if (substr($f, ($i - 1) , 1) == "0") {
                    $f1 = $thin;
                } else {
                    $f1 = $wide;
                }
                imagefilledrectangle($img, $pos, 1, $pos - 1 + $f1, 53, $cl_black);
                $pos = $pos + $f1;
                if (substr($f, $i, 1) == "0") {
                    $f2 = $thin;
                } else {
                    $f2 = $wide;
                }
                imagefilledrectangle($img, $pos, 1, $pos - 1 + $f2, 53, $cl_white);
                $pos = $pos + $f2;
            }
        }
        imagefilledrectangle($img, $pos, 1, $pos - 1 + $wide, 53, $cl_black);
        $pos = $pos + $wide;
        imagefilledrectangle($img, $pos, 1, $pos - 1 + $thin, 53, $cl_white);
        $pos = $pos + $thin;
        imagefilledrectangle($img, $pos, 1, $pos - 1 + $thin, 53, $cl_black);
        $pos = $pos + $thin;
        $this->put_img($img, $files);
    }
    function barra_left($input, $comp) {
        return substr($input, 0, $comp);
    }
    function barra_right($input, $comp) {
        return substr($input, strlen($input) - $comp, $comp);
    }
    function put_img($image, $file) {
        if ($this->into) {
            imagegif($image, $file);
        } else {
            header("content-type: image/gif");
            imagegif($image);
        }
        imagedestroy($image);
    }
}
?>

调用方法,代码如下:

<?php
include ("codes.php");
$new_code = new cd_barra("1234567890", "a.gif", 1);
?>
<img src = "a.gif" />


文章链接:http://www.phprm.com/tuxiang/fs4483.html

随便收藏,请保留本文地址!

标签:php条形码 条形码代码

发表留言