Moro,
Liittyen tuohon ao. koodiin tulee eräs ongelma. Koodin on tarkoitus toimia siten, että näytetään tietyssä hakemistossa olevien kuvien thumbbi, ja jos thumbbia ei ole, se generoidaan. Nyt ongelma on siinä, että aina ensimmäistä kertaa thumbbia generoitaessa, ensimmäinen thumbbi jää rikkinäiseksi, mutta kun lataan sivun reloadilla niin se ensimmäinen kuvakin näkyy. Ajattelin, että ongelma voisi olla siinä, että funktio kyllä generoi thumbin, mutta ei kerkeä luoda tätä kuvatiedostoa ennen kuin sitä jo pyydetään näytettäväksi selaimelle alempana ohjelmassa. Kuitenkin seuraavat kuvat näkyvät hyvin. Olisiko kellään hc-php-koodaajalla antaa vinkkiä, että mikä mahtaisi olla vialla tämän ensimmäisen kuvan kanssa?
- Jari -
<?php include "header.php"; ?> <?php function muunnakoko($filu, $koko, $hvaiw){ $tiedot = getimagesize("../image/orig/yyyy/zzzz/$filu"); if($tiedot[2] == 2){ $kuva = imagecreatefromjpeg("../image/orig/yyyy/zzzz/$filu"); } else if($tiedot[2] == 3){ $kuva = imagecreatefrompng("../image/orig/yyyy/zzzz/$filu"); } else die(); $korkeus = $tiedot[1]; $leveys = $tiedot[0]; if($hvaiw == "h"){ $suhde = $leveys / $korkeus; $pikkukork = $koko; $pikkulev = $koko * $suhde; } else if($hvaiw == "w"){ $suhde = $korkeus / $leveys; $pikkukork = $koko * $suhde; $pikkulev = $koko; } $pikkukuva = imagecreatetruecolor($pikkulev, $pikkukork); imagecopyresampled($pikkukuva, $kuva, 0, 0, 0, 0, $pikkulev+1, $pikkukork+1, $leveys, $korkeus); /*kirjoitetaan thumb-kuva thumb-kansioon samannimiseen alihakemistoon*/ if (!is_dir("../image/thumb/yyyy")) mkdir("../image/thumb/yyyy"); else if (!is_dir("../image/thumb/yyyy/zzzz")) mkdir("../image/thumb/yyyy/zzzz"); else { imagejpeg($pikkukuva,"../image/thumb/yyyy/zzzz/$filu"); imagedestroy($kuva); imagedestroy($pikkukuva); } } ?> <h2>zzzz</h2> <?php /*hakee kuvien nimet zzzz-kansion alta ja tulostaa ne sekä tekee niihin linkit*/ $photoname = glob("../image/orig/yyyy/zzzz/*"); for($i = 0; $i < count($photoname); $i++) { $photoname[$i] = basename($photoname[$i]); /*isot kuvat pienemmiksi ja näytetään nämä pienet kuvat, mutta linkataan alkuperäisiin*/ /*ei kuitenkaan ajeta funktiota jos thumbi on jo olemassa*/ if(!is_file("../image/thumb/yyyy/zzzz/$photoname[$i]")){ muunnakoko($photoname[$i],800,"w"); } echo "<a href=\"../image/orig/yyyy/zzzz/$photoname[$i]\"><img src=\"../image/thumb/yyyy/zzzz/$photoname[$i]\" class=\"photo\""; /*tulostetaan kuvien nimet kuvien alle ja titleen*/ $photoname[$i] = str_replace(".jpg","",$photoname[$i]); $photoname[$i] = str_replace(".Jpg","",$photoname[$i]); $photoname[$i] = str_replace(".JPG","",$photoname[$i]); $photoname[$i] = str_replace(".png","",$photoname[$i]); $photoname[$i] = str_replace(".Png","",$photoname[$i]); $photoname[$i] = str_replace(".PNG","",$photoname[$i]); echo "title=\"$photoname[$i]\"></a><br/>$photoname[$i]<br/>"; } ?> <hr/> <a href="#top" class="backtotop">BACK TO TOP</a> <?php include "footer.php"; ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.