Subversion Repositories webcounter

Rev

Blame | Last modification | View Log | RSS feed

  1. <?php
  2.  
  3. /*
  4.  * PHP Counter mit Reloadsperre, Textdatenbank und Graphic-Libary (without Error Images)
  5.  * (C)Copyright 2010 - 2017 Daniel Marschall
  6.  * Revision: 2017-05-05
  7.  */
  8.  
  9. class VtsCounterThemeImpl extends VtsCounterTheme {
  10.  
  11.         protected function getImg($visitors, $hue=0) {
  12.                 $offset_x = 0;
  13.                 $offset_y = 0;
  14.  
  15.                 $digit_middle_pad = 2;
  16.  
  17.                 $digits = array();
  18.  
  19.                 $img_size_w = $offset_x;
  20.                 $img_size_h = 0;
  21.  
  22.                 for ($i=0; $i<strlen($visitors); $i++) {
  23.                         if ($visitors[$i] == ' ') $visitors[$i] = 'x'; // don't support "blank" digits
  24.                         $digit_im = ImageCreateFromPNG(__DIR__.'/digit_'.$visitors[$i].'.png');
  25.                         $digit_w = imagesx($digit_im);
  26.                         $digit_h = imagesy($digit_im);
  27.  
  28.                         $digits[] = array($digit_im, $digit_w, $digit_h);
  29.  
  30.                         $img_size_w += $digit_w + ($i == 0 ? 0 : $digit_middle_pad);
  31.                         $img_size_h = max($img_size_h, $digit_h+$offset_y);
  32.                 }
  33.  
  34.                 $im = ImageCreate($img_size_w, $img_size_h);
  35.                 imagesavealpha($im, true);
  36.  
  37.                 $pos_x = $offset_x;
  38.                 for ($i=0; $i<strlen($visitors); $i++) {
  39.                         $digit_im = $digits[$i][0];
  40.                         $digit_w = $digits[$i][1];
  41.                         $digit_h = $digits[$i][2];
  42.  
  43.                         imagehue($digit_im, $hue);
  44.  
  45.                         $pos_y = $offset_y + ($img_size_h - $digit_h); // auf Boden platzieren
  46.                         ImageCopy($im, $digit_im, $pos_x, $pos_y, 0, 0, $digit_w, $digit_h);
  47.                         $pos_x += $digit_w + $digit_middle_pad;
  48.  
  49.                         ImageDestroy($digit_im);
  50.                 }
  51.  
  52.                 return $im;
  53.         }
  54.  
  55. }
  56.  
  57. $themeObj = new VtsCounterThemeImpl();
  58. $themeObj->stellenMin = 1;
  59.