Avatar billede spectrenectar Nybegynder
10. juli 2007 - 16:11 Der er 2 kommentarer og
1 løsning

Menuknapper med gd2

hej

Jeg har lavet en menuknaps -php fil som har nogle underlige felter på sig:

<?php
   
    $img_w = (isset($_GET["w"]) && $_GET["w"]!=0)  ? abs(intval($_GET["w"])) : 25;
    $img_h = (isset($_GET["h"]) && $_GET["h"]!=0)  ? abs(intval($_GET["h"])) : 115;
    $img_t = (isset($_GET["t"]) && $_GET["t"]!="") ? $_GET["t"]              : "Ingen parametre";
   
    $img = imagecreate($img_w,$img_h);
   
    $img_bg = imagecreatefromgif("_img/button_bg.gif");
    $img_left = imagecreatefromgif("_img/button_left.gif");
    $img_right = imagecreatefromgif("_img/button_right.gif");
   
    imagesettile($img,$img_bg);
   
    imagefilledrectangle($img,0,0,$img_w,$img_h,IMG_COLOR_TILED);
   
    imagecopy($img,$img_left,0,0,0,0,imagesx($img_left),imagesy($img_left));
    imagecopy($img,$img_right,imagesx($img)-imagesx($img_right),0,0,0,imagesx($img_right),imagesy($img_right));
   
    $ft_size = 1;
   
    while(true) {
       
        $corners = imagettfbbox($ft_size+1,0,"arial.ttf",$img_t);
        $c_x1 = $corners[0];
        $c_y1 = $corners[1];
        $c_x2 = $corners[2];
        $c_y2 = $corners[3];
        $c_x3 = $corners[4];
        $c_y3 = $corners[5];
        $c_x4 = $corners[6];
        $c_y4 = $corners[7];
       
        if(abs($c_x3-$c_x1)<imagesx($img)-8
        && abs($c_y3-$c_y1)<imagesy($img)-8) {
            $ft_size++;
        } else {
            break;
        }
       
    }
   
    $corners = imagettfbbox($ft_size,0,"arial.ttf",$img_t);
    $c_x1 = $corners[0];
    $c_y1 = $corners[1];
    $c_x2 = $corners[2];
    $c_y2 = $corners[3];
    $c_x3 = $corners[4];
    $c_y3 = $corners[5];
    $c_x4 = $corners[6];
    $c_y4 = $corners[7];
   
    $x = intval(imagesx($img)/2 - abs($c_x3-$c_x1)/2 + 1);
    $y = intval(imagesy($img)/2 + abs($c_y3-$c_y1)/2 - 1);;
   
    imagettftext($img,$ft_size,0,$x,$y,imagecolorallocate($img,51,51,51),"arial.ttf",$img_t);
   
    header('Content-type: image/gif');
   
    imagegif($img);
    imagedestroy($img);
    imagedestroy($img_bg);
    imagedestroy($img_left);
    imagedestroy($img_right);
   
   
?>

Hvordan undgår jeg at de felter dukker op somme tider?
Avatar billede zurekk Nybegynder
10. juli 2007 - 16:20 #1
Hvilke felter snakker du om?
Måske bare mig der ikke kan se dem?
Avatar billede spectrenectar Nybegynder
11. juli 2007 - 17:02 #2
Avatar billede spectrenectar Nybegynder
21. juli 2007 - 11:16 #3
Dette spørgsmål er nu over en uge gammelt og derfor svarer jeg selv og tager pointene igen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester