Blame view

bcode.php 3.12 KB
42868d70   andryeyev   Создал GIT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
  <?php
  // ïðèíèìàåì ÷èñëî èëè ãåíåðèðóåì ñëó÷àéíûé êîä 
  $code_num = (integer)$_GET['num'] ? (integer)$_GET['num'] : rand(11111111, 99999999);
    ////// íàñòðîéêà  /////////////////////////////////////////////////////////////
   $height = 200;//100;           // âûñîòà èçîáðàæåíèÿ  (âñå ðàçìåðû - â ïèêñåëàõ)
   $width = 80;//36;              // øèðèíà èçîáðàæåíèÿ
   GLOBAL $from_top;
   $from_top = 2;             // îòñòóï êîäà îò âåðõà èçîáðàæåíèÿ
   define("BORDER",false);     // ðèñîâàòü ðàìêó - äëÿ öåëåé îòëàäêè
   define("FROM_LEFT",20);      // îòñòóï ñëåâà
   define("CODE_WIDTH", 250);  // øèðèíà êîäà
   define("FONT_HEIGHT",26);   // âûñîòà øðèôòà öèôð êîäà + 1-2 ïèêñåëà
   define("MODULE_WIDTH",2);  // øèðèíà ìîäóëÿ øðèõ-êîäà â ïèêñåëàõ
   ///////////////////////////////////////////////////////////////////////////////
   // îïðåäåëÿåì èñïîëüçóåìûå öâåòà
   $im = ImageCreateTrueColor($width,$height);
   GLOBAL $white;
   $white = ImageColorAllocate($im, 255,255,255);
   // öâåò ðàìêè
   $blue = ImageColorAllocate($im, 199,223,250);
   GLOBAL $black;
   $black = ImageColorAllocate($im, 0,0,0);
   ImageFill($im,0,0,$white);
   // ðèñóåì ðàìêó
   if(BORDER)
   {
       ImageLine($im, 0, 0, 0, $height, $blue);
       ImageLine($im, 0, 0, $width, 0, $blue);
       ImageLine($im,$width-1,0, $width-1,$height, $blue);
       ImageLine($im,0,$height-1, $width,$height-1, $blue);
   }
   // ðèñóåì øòðèõ-êîä
     // ìàññèâ ïîëîñîê-öèôð
   $num[0] = "101010001110";
   $num[1] = "101011100010";
   $num[2] = "101000101110";
   $num[3] = "111000101010";
   $num[4] = "101110100010";
   $num[5] = "111010100010";
   $num[6] = "100010101110";
   $num[7] = "100010111010";
   $num[8] = "100011101010";
   $num[9] = "111010001010";
   //$num[10]= "10100010001110"; // êîä *
   $num[10]= "100101101101";
  
  
   // ôóíêöèÿ âûâîäà ïîëîñîê êîäà
   function draw_line($im, $line_str,$number){
  
  if($number=='11'){
  ImageTTFText($im, 21, 270, FROM_LEFT, $GLOBALS['from_top']+2,$GLOBALS['black'],'./fonts/tahoma.ttf', "*" );
  }else
    if ($number != "10")
    {
      // âûâîäèì öèôðû íà øòðèõ-êîäå
     ImageTTFText($im, 21, 270, FROM_LEFT, $GLOBALS['from_top']+2,$GLOBALS['black'],'./fonts/tahoma.ttf', $number );
     $from_left = FROM_LEFT + FONT_HEIGHT;
    }
    else $from_left = FROM_LEFT;
    for($j = 0; $j < strlen($line_str); $j++)
    {
      $sub_line = substr($line_str, $j,1);
      if ($sub_line == "1") $line_color = $GLOBALS['black'];
      else  $line_color = $GLOBALS['white'];
      for ($i = 1;$i <= MODULE_WIDTH; $i++)
      {
        //ImageLine($im,$from_left, $GLOBALS['from_top'], CODE_WIDTH + FROM_LEFT, $GLOBALS['from_top'], $line_color);
        $GLOBALS['from_top']++;
      }
     }
   }
   //////////////////////// íà÷àëî âûâîäà øòðèõ-êîäà /////////////////////////////
       // íà÷àëüíûé ñèìâîë
   draw_line($im,$num[10],11);
      // öèôðû êîäà
   for ($i = 0; $i < strlen($code_num); $i++)
   {
    $number = (integer)substr($code_num, $i,1);
    draw_line($im,$num[$number],$number);
   }
    // êîíå÷íûé ñèìâîë
   draw_line($im,$num[10],11);
  ///////////////////////// êîíåö ãåíåðàöèè øòðèõ-êîäà /////////////////////////////
   // âûâîäèì êàðòèíêó â áðàóçåð
   Header('Content-type: image/png');
   ImagePng($im);
    // ...èëè ñîõðàíÿåì â ôàéë
   // ImagePng($im, "barcode_$code_num.png");
   ImageDestroy($im);
  ?>