首頁 > 編程 > PHP > 正文

            通過文字傳遞創建的圖形按鈕

            2019-09-08 23:11:50
            字體:
            來源:轉載
            供稿:網友
            通過文字傳遞創建的圖形按鈕,詳細說明請看文內英文說明
            <?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
               ?>/t
            發表評論 共有條評論
            用戶名: 密碼:
            驗證碼: 匿名發表
            日韩三区