Avatar billede blaatand Nybegynder
22. juli 2004 - 10:55 Der er 25 kommentarer og
1 løsning

5 pixel for meget

Hey, jeg er gået i gang med at lave et lille fansite hvor jeg har smidt en screenshotfunktion på som så smider det nyeste screenshot på forsiden.

Det kan ses her: http://wow.mohaa.dk/

Mit problem er, at der nederst i tumbnail billedet er ca. 5 pixel for meget. Fatter ikke rigtig hvorfor, har brugt næsten en time på at ændre størelsen på tumbnailen ved at ændre i den fil som laver den, samt prøvet alt muligt, og tjekket for "blank kode" som måske kunne lave noget det ikke skulle.

Nogle der har et kvalificeret bud på hvad kunne foresage dette?
Avatar billede sostack Nybegynder
22. juli 2004 - 10:58 #1
Må vi se noget kode, hvor du genererer thumbnailen?

//sostack
Avatar billede blaatand Nybegynder
22. juli 2004 - 11:14 #2
<?php
                $max_fil_storelse     = "1024000"; // i bytes
                $billede_max_bredde    = "300"; // I pixels
                $billede_max_hojde    = "1000"; // Også i pixels
                $fil_path        = $_SERVER['DOCUMENT_ROOT'] . "/screenshots";
               
                require($_SERVER['DOCUMENT_ROOT'] . "/image_resize.php");
                require($_SERVER['DOCUMENT_ROOT'] . "/conn.php");
               
               
                function form() {
               
                global $max_fil_storelse;
               
                $action = $_SERVER['PHP_SELF'];
                ?>
                <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" class="screenshots-tekst">
                  <tr>
                    <td height="75" valign="middle"><form method="post" action="<? echo $action ?>" enctype="multipart/form-data">
                          <p>Din kommentar til billedet (udfyld venligst).<br>
                            <textarea name="comment" cols="59" rows="10" class="form-field-blue" ></textarea>
                            <br>
                            Fil :
                            <input name="filen" type="file" class="form-field-blue" id="filen" size="37">
                            *Max dimentioner p&aring; 1200x900!</p>
                        <p>
                          <input name="submit_fil" type="submit" class="form-button-white" value="Upload">
                          <input name="B2" type="reset" class="form-button-white" value="Slet alt">
                        </p>
                      </form></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                  </tr>
                  <tr>
                      <td></td>
                  </tr>
                </table>
                <?php
                }
                function upload() {

                global $fil_path, $vare_id;
               
                    $user_id        = $_SESSION["user_id"];
               
                    $fil_path_temp = $fil_path . "/temp/" . $_FILES['filen']['name'];
               
                    if(!eregi(".jpg$|.jpeg$", $fil_path_temp)) { $error = "The file needs to be JPG format !"; }
               
                    if ($error) {
                        echo $error;
                        form();
                    } else { # nice, vi kan fortsætte
               
               
                        if (!@copy($_FILES['filen']['tmp_name'],$fil_path_temp)) {
                            echo $_FILES['filen']['tmp_name'];
                            echo "<br>";
                            echo $fil_path;
                            echo "\n<b>The file could not be written to the server...</b>";
                            form();
                        } else {
               
                            //image_resize($fil_path_temp, 300, 1000, $fil_path_temp);
                            $comment = $_POST["comment"];
                            $kategori = $_POST["kategori"];
                            $bruger_id = $_SESSION["user_id"];
               
                            mysql_query("INSERT INTO wow_screenshots (comment, dato) values ('$comment', NOW())");
                           
                            $id = mysql_insert_id();
                            $endeligt_navn = $fil_path . "/" . $id . ".jpg";
                            $endeligt_thumb_navn = $fil_path . "/tn" . $id . ".jpg";
                            rename($fil_path_temp, $endeligt_navn);
                           
                            image_resize($endeligt_navn, 192, 139, $endeligt_thumb_navn);
               
                            $fraurl    = $_SERVER['HTTP_REFERER'];
               
                            echo "<span class=\"site-tekst\">Screenshot was added to the database!</a><br><br>";
//                            include("include-screenshot-muligheder.php");
               
                           
                        }
                    }
                ?>
                <?php
                }
               
               
                ### Start koden ####
               
                if (isset($_REQUEST['submit_fil'])) {
                    upload();
                }else{
                    form();
                }
                ?>
                <?php
//                };
                ?>
Avatar billede blaatand Nybegynder
22. juli 2004 - 11:14 #3
og her er image_resize.php:

<?php

function image_resize($sourcefile,$maxwidth,$maxheight,$destinationfile=false)
{
    $types=Array();
    $types[1]='gif';
    $types[2]='jpeg';
    $types[3]='png';
    $types[6]='wbmp';
    list($width,$height,$type)=getimagesize($sourcefile);
    $type_name=$types[$type];
    $imagecreatefromtype='imagecreatefrom'.$type_name;
    $imagetype='image'.$type_name;
    if(!function_exists($imagecreatefromtype) || !function_exists($imagetype))
    {
        return false;
    }
    if($img_src=$imagecreatefromtype($sourcefile))
    {
        $ratio_height=$maxheight/$height;
        $ratio_width=$maxwidth/$width;
        $ratio=min($ratio_width,$ratio_height);
        $newwidth=$width*$ratio;
        $newheight=$height*$ratio;
        $img_dst=imagecreatetruecolor($newwidth,$newheight);
//        $img_dst=imagecreate($newwidth,$newheight);

        imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
//        imagecopyresized($img_dst, $img_src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);        
        if($destinationfile==false)
        {
            //header("Content-type: image/jpeg");
            $imagetype($img_dst);
        }
        else
            $imagetype($img_dst,$destinationfile);
        imagedestroy($img_dst);
        return true;
    }
    else
    {
        return false;
    }
}
?>
Avatar billede detox Nybegynder
22. juli 2004 - 11:40 #4
Er det bare mig der ikke kan se de ekstra 5 pixels? Derimod kan jeg ikke føre cursoren over thumbnailen uden at få en fejlbesked om en manglende dll fil og en besked om en unknown exception i denne linie:
diff = destOp-object.filters.alpha.opacity;
I mozilla kører den dog fint (men jeg kan stadig ikke få øje på problemet).
Avatar billede blaatand Nybegynder
22. juli 2004 - 11:44 #5
Jeg kører IE...

og den fejl skyldes højst sandsynligt det fade script som ligger der ;)

Kan prøve og fjerne det og se om det hjælper (tvivler dog)

Det fungerer fint for mig, dog har jeg (ikke 5) men lidt ekstra pixel af den tabel som billedet ligger i, som ikke skal være der. (Det er i bunden af billedet)
Avatar billede detox Nybegynder
22. juli 2004 - 12:14 #6
Billedstørrelsen er jo 190x139, så højden skulle da være fin nok ift. dit script.
Er der 'luft' under billedet hos dig, eller har jeg misforstået problemet?
Avatar billede blaatand Nybegynder
22. juli 2004 - 12:29 #7
http://wow.mohaa.dk/

Har sat rød som baggrund, det er lettere at se der er noget luft omkring billedet nu.

Faktisk er det 1 pixel på hver side, samt 2 pixel i bunden. Så billedet bliver sådan set 2 pixel for lille på begge kanter
Avatar billede blaatand Nybegynder
22. juli 2004 - 12:31 #8
Sådan her ser det ud hos mig:

http://wow.mohaa.dk/fejl.gif
Avatar billede detox Nybegynder
22. juli 2004 - 12:44 #9
Hos mig ser det sådan ud (i mozilla):
http://www.buksevand.dk/img/mohaa.gif
Avatar billede blaatand Nybegynder
22. juli 2004 - 12:45 #10
Har prøvet og justere, og billedet er nu 192x144, men der er stadig de 2 pixel i bunden for meget :(
Avatar billede blaatand Nybegynder
22. juli 2004 - 12:47 #11
Er det som det skal være for dig lige nu? for nu er pixels 192 som det burde
Avatar billede detox Nybegynder
22. juli 2004 - 12:48 #12
I IE ser det helt forkert ud:
http://www.buksevand.dk/img/mohaa-ie.gif
Avatar billede detox Nybegynder
22. juli 2004 - 12:49 #13
Ja, nu ser det fint ud i mozilla, men med en kant i IE.
Avatar billede blaatand Nybegynder
22. juli 2004 - 12:51 #14
Ja, det er den kant jeg også får i IE...
Avatar billede detox Nybegynder
22. juli 2004 - 12:57 #15
Kan det hænge sammen med at du bruger <tbody>, den er vidst ikke så godt understøttet (især, når du ikke bruger <thead> og <tfoot>.
Avatar billede blaatand Nybegynder
22. juli 2004 - 13:00 #16
uhmm... det bruger jeg heller ikke?!
Avatar billede detox Nybegynder
22. juli 2004 - 13:01 #17
Jeg kan da se du bruger <tbody> i koden?
Avatar billede detox Nybegynder
22. juli 2004 - 13:03 #18
Om det har noget at sige ved jeg ikke, men det er vel unødvendigt, når du ikke bruger <thead> og <tfoot>.
Avatar billede blaatand Nybegynder
22. juli 2004 - 13:03 #19
hmm, ikke hos mig =)

Søgte på tbody, og finder ikke noget
Avatar billede detox Nybegynder
22. juli 2004 - 13:11 #20
Pudsigt, der må være noget galt med: 'View selection source' hos mig. Der viser den:

                <td height="200" valign="top" width="202"><table border="0" cellpadding="0" cellspacing="0" width="202">
                    <tbody><tr>

men i 'View page source' er den der ikke ;o(???
Avatar billede blaatand Nybegynder
22. juli 2004 - 13:12 #21
Ja, det er lidt anderledes her ;)
Avatar billede detox Nybegynder
22. juli 2004 - 13:14 #22
Så har du måske heller ikke en masse mellemrum (eller tabs) før </td> her:

<a href="screenshots/14.jpg" target="_blank"><img src="screenshots/tn14.jpg" title="2004-07-22: hmm" style="filter:alpha(opacity=50)" onmouseover="nereidFade(this,100,50,10)" onmouseout="nereidFade(this,50,50,5)" border="0"></a>                      </td>
Avatar billede detox Nybegynder
22. juli 2004 - 13:14 #23
Hos mig viser den 5 tab + 2 mellemrum.
Avatar billede blaatand Nybegynder
22. juli 2004 - 13:16 #24
Jo det har jeg sku osse
Avatar billede detox Nybegynder
22. juli 2004 - 13:19 #25
I øvrigt osse før billedet (altså mellem <td> og <a href="screenshots/....)
Avatar billede blaatand Nybegynder
22. juli 2004 - 15:37 #26
Men må vel så egentlig bare leve med at IE viser den forkert... :(

*lukker*
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