WEB开发网
开发学院WEB开发PHP 通过文字传递创建的图形按钮 阅读

通过文字传递创建的图形按钮

 2001-01-17 11:43:06 来源:WEB开发网   
核心提示:通过文字传递创建的图形按钮,详细说明请看文内英文说明 <?php Header( "Content-type: image/gif"); // info for the browser /* PHP3 Button generator, (c) 2000 by IzzySoft (izzyso
通过文字传递创建的图形按钮,详细说明请看文内英文说明
<?php Header( "Content-type: image/gif"); // info for the browser
  /* PHP3 Button generator, (c) 2000 by IzzySoft (izzysoft@buntspecht.de)
  * License: GPL (and it would be nice to drop me a note that you find it
  * useful - if you use it. And, of course, I am very interested in
  * enhancements you made to the script!
  *
  * Purpose: generate buttons with text passed by parameter.
  *
  * possible parameters to the script:
  *button- input gif image. Just the part of the filename before the dot.
  *The specified image file is expected in the same directory
  *as this script resides in.
  *font - font to use (1 - 5; 1 is very small, 3 medium, 5 normal size.
  *The script will automatically use a smaller font if text is
  *too long for selected size.) Default: 5
  *text - the text to be put on the button. Will be centered.
  *textcolor - color for the letters. Default: white.
  *in this example code only blue, white and black are defined;
  *but you can add custom colors easily.
  *width,heigth - width and heigth of the button. Useful only if target
  *button should have different size than source image.
  *
  * Example for usage:
  * <IMG SRC="button.php3?button=yellow&text=Example">
  * will look for yellow.gif and put the string "Example" on it.
  *
  * I use to have three buttons I normally generate (one displays selected
  * item, one is for mouSEOver(), and one is the default button). The source
  * images are yellow.gif, white.gif and blue.gif - so my script assumes
  * blue.gif as default if "button=" not specified - you may wish to change
  * this below, it's easy ;)
  */
  // ===========================[ check fo
  //   r parameters and/or set defaults ]===
  if (($font == "") || ($font > 5) || ($font < 1)) { $font = 5; }
  if ($text == "") { $text="Moin!"; }// button text
  if ($textcolor == "") {// color for the letters
  switch ($button) {
  case "yellow":
  case "white":
  $textcolor = "black";
  break;
  default:
  if ($button == "") { $button = "blue"; }
  $textcolor = "white";
  break;
  }
  } // textcolor end
  $im_info = getimagesize("$button.gif"); // button size
  if ($width == "") {
  if ($im_info == "") {
  $buttonwidth = 125;
  } else {
  $buttonwidth = "$im_info[0]";
  }
  } else {
  $buttonwidth = $width;
  }
  if ($heigth == "") {
  if ($im_info == "") {
  $buttonheigth = 30;
  } else {
  $buttonheigth = "$im_info[1]";
  }
  } else {
  $buttonheigth = $heigth;
  }
  $vmidth = ceil($buttonheigth / 2);
  // =====================================
  //   ===[ now lets define some colors ]===
   
  $white = "255,255,255";
  $black = "0,0,0";
  $blue = "0x2c,0c6d,0xaf";
  // =====================================
  //   =============[ build color array ]===
  // now we put the needed color into an a
  //   rray (if e.g. "$textcolor=white",
  // the array $textcolor_array rePResents
  //   "white")
  $textcolor_array = explode(",", $$textcolor);
  // =======================[ calculate po
  //   sition of the text on the button ]===
  do {
  $textwidth = strlen($text) * imagefontwidth($font);
  $x = ($buttonwidth - $textwidth) / 2; $x = ceil($x);
  $y = $vmidth - (imagefontheight($font) / 2);
  $font--;
  } while (($x < 0) && ($font > 0)); $font++;
  // =====================================
  //   ======[ now we create the button ]===
  if (isset($width) || isset($heigth)) {// size change expected?
  $ima = imagecreatefromgif("$button.gif");// open input gif
  $im = imagecreate($buttonwidth,$buttonheigth); // create img in desired size
  $uglybg = ImageColorAllocate($im,0xf4,0xb2,0xe5);
  ImageRectangle($im,0,0,$buttonwidth,$buttonheigth,$uglybg);
  $dummy = imagecopyresized($im,$ima,0,0,0,0,$buttonwidth,$buttonheigth,$im_info[0],$im_info[1]);
  if ($dummy == "") {
  ImageDestroy($im); // if it didn't work, create default below instead
  } else {;}
  ImageDestroy($ima);
  ImageColorTransparent($im,$uglybg);
  } else {
  $im = imagecreatefromgif("$button.gif");// open input gif
  }
  if ($im == "") { $im = imagecreate($buttonwidth,$buttonheigth); // if input gif not found,
  $rblue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);// create a default box
  ImageRectangle($im,0,0,200,100,$rblue);
  }
  $color = ImageColorAllocate($im, $textcolor_array[0], $textcolor_array[1], $textcolor_array[2]); // allocate the color
  imagestring($im, $font, $x, $y, "$text", $color); // put the text on it
  ImageGif($im);// send button to browser
  ImageDestroy($im);// free the used memory
  ?>     

Tags:通过 文字 传递

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接