PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » 入门和基础知识 » 一個生成條形碼的類
本页主题: 一個生成條形碼的類 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

自由的龙

该用户目前不在线
级别: 中级程序员
精华: 1
发帖: 1264
威望: 1267 点
金钱: 12660 PYMB
贡献值: 0 点
在线时间:0(小时)
注册时间:2006-04-16
最后登录:2006-06-27

一個生成條形碼的類


文字文字文字
[Copy to clipboard]<?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,$into=1) {
    $lower = 1 ; $hight = 50;      
    $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(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,5,1,65,$cl_black);
      imagefilledrectangle($img, 2,5,2,65,$cl_white);
      imagefilledrectangle($img, 3,5,3,65,$cl_black);
      imagefilledrectangle($img, 4,5,4,65,$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,5,$pos-1+$f1,65,$cl_black) ;
    $pos = $pos + $f1 ;  
   
    if (substr($f,$i,1) == "0") {
      $f2 = $thin ;
    }else{
      $f2 = $wide ;
    }
 
    imagefilledrectangle($img, $pos,5,$pos-1+$f2,65,$cl_white) ;
    $pos = $pos + $f2 ;  
    }
  }
 
   
  imagefilledrectangle($img, $pos,5,$pos-1+$wide,65,$cl_black);
  $pos=$pos+$wide;
 
  imagefilledrectangle($img, $pos,5,$pos-1+$thin,65,$cl_white);
  $pos=$pos+$thin;
 
 
  imagefilledrectangle($img, $pos,5,$pos-1+$thin,65,$cl_black);
  $pos=$pos+$thin;
 
  $this->put_img($img);
  }
 
  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='test.gif'){
    if($this->into){
        imagegif($image,$this->file);
    } else {
            header("Content-type: image/gif");
            imagegif($image);
          }
    imagedestroy($image);
  }
}

?>


[ 此贴被自由的龙在2006-04-16 13:32重新编辑 ]
顶端 Posted: 2006-04-16 13:06 | [楼 主]
PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » 入门和基础知识

时:12-02 06:50 Copyright © 2006 phpwhy.com 权
ICP05060669

曳息 -