| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Image Galleryempty 22.04.03 21:54 Tekee kansion kuvista gallerian thumbnaileilla
--[ index.php ]--- <?php /* Copyright Evolius // Jouni kuusisto * Älä muokkaa hirveesti :P * * Ohjeet: * Eli koodi tekee listaa samassa kansiossa olevista * kuvistaja tulostaa thumbnailit, uudet tallennetaan * thumbs/ kansioon jolle on annettava kirjoitus oikeudet. * (chmod 777 vaikka jos ei hallitse ;) * Niin ja btw, Koodi tarvitsee GD2 ;P */ //Muokattavat: // Montako kuvaa listataan per sivu: $listaa = 20; // Sivun Otsikko $otsikko = "Image gallery By Evolius ;)"; // Älä koske täst eteepäi. ok? // Tän repäsin jostai vanhsta koodista ohimennen.. iha vaa copypastee ;) function get_file_type($filename) { ereg( ".*\.([a-zA-z0-9]{0,5})$", $filename, $regs ); $f_ext = $regs[1]; $types['image'] = array ('jpg', 'png', 'gif'); foreach ($types as $k => $v) { if (in_array($f_ext, $v)) { return $k; break; } } return 'unkown'; } // Printataan sivun alku print '<html> <head> <title>Image Gallery script By. Evolius</title> <link rel="stylesheet" href="tyyli.css" type="text/css"> </head> <body> <table cellspacing="0" cellpadding="0" align="center" width="600"> <tr><td width="600"> <h1>'.$otsikko.'</h1> </td></tr> <tr><td width="600">'; // Katsotaanko haluaako käyttäjä katsoa kuvaa if(isset($_GET['show'])) { $file = $_GET['show']; $i = 0; $d='.'; clearstatcache(); if($a = @opendir($d)) { while($b = readdir($a)) { if((is_file($b)) && (get_file_type($b) == 'image')) { if(get_file_type($b) == 'image') { if($i == $file) { $kuva = $b; } $i++; } } } closedir($a); } print '<p>'.$kuva.'<hr><center><br><img src="'.$kuva.'" class="img"><p align="right">'; if($file != 0) { $takas = $file-1; print "<a href=\"?show=$takas\"><- Previous Image</a>"; } print " :: "; if($file != $i-1) { $etee = $file+1; print "<a href=\"?show=$etee\">Next Image -></a>"; } print '<hr></td></tr>'; } // Muuten listataan kuvat else { if(isset($_GET['list'])) { $mista = $_GET['list']; } else { $mista = 0; } $mihin = $mista+$listaa; print '<p>Images '.$mista.'-'.$mihin.'<hr>'; $i = 0; $d='.'; clearstatcache(); if($a = @opendir($d)) { while($b = readdir($a)) { if((is_file($b)) && (get_file_type($b) == 'image')) { if(($i >= $mista) && ($i < $mihin)) { $stdimg = 'border="0" width="112" height="112" hspace="4" vspace="4"'; print "<a href=\"?show=$i\"><img src=\"thumb.php?$b\" alt=\"$b\" $stdimg></a>"; } $i++; } } closedir($a); } else { echo 'Kansioon ei ole oikeutta'; } print '<p align="right">'; if($mista != 0) { $takas = $mista-$listaa; print "<a href=\"?list=$takas\"><- Previous Page</a>"; } print " :: "; if($mihin <= $i) { print "<a href=\"?list=$mihin\">Next Page -></a>"; } print '<hr></td></tr>'; } ?> <tr><td><p>Image Gallery Script By Evolius<br>#Vesikupla.com @ Quakenet for whine ;)</td></tr> </table> </body> </html> ---[ thumb.php ]--- <?php /* Copyright Evolius // Jouni kuusisto * Täältä voit muokata vainthumbien värit */ define (VERSION, "1.1"); $font = 1; function pngThumbnail($file) { global $font; // Tästä voit muokata värit jos osaat :P if (function_exists('imagecreatetruecolor')) { $im = imagecreatetruecolor(112, 112); $white = imagecolorclosest ( $im, 0, 0, 0); $frame = imagecolorclosest ( $im, 255, 255, 255); $black = imagecolorclosest ( $im, 255, 255, 255); } else { $im = imagecreate(112, 112); $white = imagecolorclosest ( $im, 0, 0, 0); $frame = imagecolorclosest ( $im, 255, 255, 255); $black = imagecolorclosest ( $im, 255, 255, 255); } imagefilledrectangle ( $im, 0, 0, 112, 112, $white); $size = @getimagesize($file); $name = ereg_replace('(.*)\.[^\.]*$', '\1', $file); switch($size[2]) { case 2: $si = imagecreatefromjpeg($file); break; case 3: $si = imagecreatefrompng($file); break; case 1: if (function_exists('imagecreatefromgif')){ $si = imagecreatefromgif($file); break; } default: die; } $im_w = $size[0]; $im_h = $size[1]; if ( $im_w > $im_h ) { $dx = 9; $dw = 94; $dh = floor(94 * $im_h/$im_w); $dy = floor((96 - $dh)/2); } else { $dy = 1; $dh = 94; $dw = floor(94 * $im_w/$im_h); $dx = floor((112 - $dw)/2); } if (function_exists('imagecopyresampled')) { imagecopyresampled( $im, $si, $dx, $dy, 0, 0, $dw, $dh, $im_w, $im_h); } else { imagecopyresized( $im, $si, $dx, $dy, 0, 0, $dw, $dh, $im_w, $im_h); } imagerectangle ( $im, 8, 0, 103, 95, $frame); $px = (112 - imagefontwidth($font) * strlen($name)) / 2; if ($px < 0) $px = 0; imagestring($im, $font, $px, 98, $name, $black); imageinterlace($im, 1); imagepng($im); imagepng($im, 'thumbs/'.$file); imagedestroy($im); imagedestroy($si); exit(); } // Tulostus alkaa if (isset($_SERVER['QUERY_STRING']) && ($_SERVER['QUERY_STRING'] !== '')) { $file = $_SERVER['QUERY_STRING']; $regs = array(); while (ereg('%[0-9]{2}', $file, $regs)) { $file = str_replace($regs[0], chr(hexdec($regs[0])), $file); } $file = str_replace('/', '', $file); if(is_file('thumbs/'.$file)) { $im = imagecreatefrompng('thumbs/'.$file); imagepng ($im); exit(); } elseif (is_readable($file)) { pngThumbnail($file); exit(); } } exit(); ?> ---[ tyyli.css ]--- a:link, a:active, a:visited { color: #FFFFFF; text-decoration: none; } a:hover { color: #FFA100; text-decoration: none; } body { font-family: verdana; font-size: 11px; color: #FFFFFF; margin: 50px; background: #000000; } img.img { border: 1px solid #FFFFFF; } hr { height: 1px; color: #FFFFFF; } p { font-family: verdana; font-size: 10px; color: #FFFFFF; margin: 0px; } empty 21:55 22.4.03 eli siis tuo ei tee joka kerta uutta thumbnail kuvaa vaan tallentaa sen jotta toiminta olisi nopeampaa. pikkumyy 09:41 23.4.03 Ihan jees. Tämä voisi kyllä koittaa tehdä hakemistonkin jos sitä ei ole olemassa, ja muuttaa sen oikeuksia. Kommentteja saisi olla koodissa. Lisäksi funktio get_file_type() on jokseenkin turha, kun PHP:ssä on jo getimagesize ( http://fi2.php.net/manual/en/function.getimagesize.php ) joka palauttaa koon lisäksi kuvan tyypin. Tiedostonimestä sitä on jokseenkin turha mennä arvailemaan.. empty 14:49 23.4.03 no mutta tuo get_file_type niin kuin jo sanoin tuli ihan vaan copy-pastella tuonne ohimennen ;) Kyllähän se turha on.. ajatteli itsekkin tehdä tuohon jonkun kohdan joka katsastaa onko thumbs kansiota olemassa ja jos ei niin tekee mutta laiskuudessani en jaksanut :) ZcMander 20:11 24.4.03 hyvä. Eero 15:15 29.4.03 Moi. Tosi hienolta näyttää, mutta en saanut pikkukuvia näkyviin. Se ei tallentanut niitä thumbs-kansioon eli se oli tyhjä. Käyttiksenä on Windows2000 server ja IIS-palvelin johon on asennettu php-tuki. Voisiko joku neuvoa missä mahtaa olla vika? (paitsi IIS:ssä ;-) ). OzKu1 16:00 2.5.03 voiks tota index.php nimee muuttaa? daharzi 19:59 7.5.03 "Älä muokkaa hirveesti :P " ... Nämä alkavat olla jotain closedsourcea kohta... empty 13:37 11.5.03 Jos thumbit ei toimi, se toden näköisesti johtuu siitä ettei GD tukea ole asennettu PHP:lle Eero 14:53 13.5.03 Kiitos Evolius. Huomasin sen itse heti kun olin laittanut viestin ja katsoin sen jälkeen ohjeita. Arvatkaa hävettikö? Nyt toimii muuten mut thumbnailit eivät aukea. Eli galleriakuvat eivät näy. Kuvat tallentuvat jpg-muodossa ja koko näkyy mutta en saa niitä auki. Näkyy vain tyhjä kuva. Missähän mahtaa olla vika? (toivottavasti ei käyttäjässä) neon 21:23 15.5.03 Jos aiot käyttää tota omaa systeemiäsi kuvan tyypin selvitykseen, pistä palautetta arvo strtolower() funkkarin läpi ennen vertailua. Muuten nimiä jotka on kirjoitettu capitaaleilla ei hyväksytä. jp_88 22:59 16.5.03 Miten saaa php toimimaan kun mul ei toimi se sanokaa ees esimerkki charge 00:56 8.7.03 Kynnet ilmestyvät /thumbs hakemistoon, mutta eivät näy index.php:ssä? koti.mbnet.fi on palvelin.. editoitu: 01:57 5.10.04 Aceman87 23:26 13.7.03 Sehän etsii nittä kuvia oletuksena omasta kansiostaan ? Miten saa polun vaihdettua, esimerkki kiitos. -n00b editoitu: 01:57 5.10.04 Aceman87 03:04 14.7.03 Hyvin pelaa wille82 20:41 20.7.03 juups, muuten toimii mutta ei näytä thumbnaileja. kuis ne sais toimimaan?? asiantuntija 19:04 26.8.03 Jes kiitos. Pitkään säädi että sais toimimaan, mutta nyt toimii. :) mite 00:39 27.8.03 Ihan jees skripta pienellä mulkkauksella. Itse lisäsin mm. tonne kuvankattomistilaan "uuden namiskan" josta pääsee takas thumbnaileihin, eli rivi 74: $indeksi = $file-$file%$listaa; print "<a href=\"?list=$indeksi\"> : INDEXI : </a>"; mite 00:47 27.8.03 Hmm joo, jäi pois että filetypeksi kannattaa laittaa myös uppercase-vaihtoehdot, jos siis arvailee tiedostonimestä... JTS 11:39 3.10.03 Loistava koodi, itsellä tuli tarpeeseen. Itse lisäisin vielä koodiin sen verran että riville 26 seuraavaa entisen koodin tilalle: $types['image'] = array ('jpg', 'png', 'gif', 'JPG', 'Jpg', 'GIF', 'Gif', 'PNG', 'Png'); Niin että tunnistaa myös isolla kirjoitetut filetypet. JTS 11:51 3.10.03 Vieläkö saisi thumbnailkuviin niiden upload päivämäärän näkyviin niin hyvä. Tai edes järjestäisi kuvat niiden upload päivämäärän mukaan. Thief 00:48 13.10.03 Kuinkas tuohon lisätään vielä alareunaan linkit 10-30, 30-50 jne... eli semmoset jolla voi suoraan hypätä viimeisiin kuviin. Petesku 13:07 15.3.04 Todella kätevä ja toimiva scripti. Itse käytän ja suosittelen. ;) Kiitos tekijälle. Eero 01:51 27.7.04 Todella hieno koodi kun saisi vielä toimimaan. Pikkukuvat tulee hienosti thumbs-kansioon ja kaikki muu toimii hienosti paitsi että pikkukuvat eivät näy. En ole kauheen kokenut ohjelmoija ja taidot loppuvat kesken. Tällainen virhe koodissa mielestäni on: rivillä print "<a href=\"?show=$i\"><img src=\"thumb.php?$b\" alt=\"$b\" $stdimg></a>"; antaa pikkukuvan linkiksi thumb.php?kuvannimi.jotain kun pitäisi olla thumbs/kuvannimi.jotain. Jos muutan koodia niin, että linkki pikkukuviin toimii niin sen jälkeen se ei luo enää pikkukuvia. Olen muuttanut rivin muotoon print "<a href=\"?show=$i\"><img src=\"thumbs\\$b\" alt=\"$b\" $stdimg></a>";. Silloin linkki pikkukuviin toimii. Oisiko jollain vinkkiä että miten saisin systeemin toimimaan? Olen käynyt kauhean määrän oppaita läpi mutta mistään en ole löytänyt ratkaisua. Käyttiksenä on WinXP, IIS5 ja PHP4.3.8. Valky 22:20 19.1.05 Te jotka ette ole saaneet pikkukuvia näkyviin, niin olettehan varmasti tallettaneet juurikansioon myös thumb.php tiedoston? Auttoi ainakin tässä päässä. SOtaMAto 16:37 5.3.05 Mulla toimii loistavasti! Kiitos. On tuo kyllä noitten mainosten arvonen :D Pjelax 18:19 28.3.05 onko tähän mahdollista lisätä jonkinlaista koodin pätkää mikä järjestäisi kuvat vaikka numeron mukaan. 01, 02,03,.........10,11,..... Enemy78 09:53 5.6.05 Kaikki toimii loistavasti kun laitan sivun normaalisti, mutta kun includaan niin thumbnailit eivät näy ja scripti hakee kuvat ihan väärästä kansiosta. mikä neuvoksi....? Enemy78 17:02 6.6.05 Ei tarvitse enää vastata se onnistu jo ilman apujakin...;( Webe 20:23 14.6.05 Onkohan pikkukuvien poisto mahdollista? Haluaisin sivun ohjautuvan suoraan isoihin kuviin missä niitä voi selata yksi kerrallaan. lahtis 21:09 13.9.05 Hyvin toimii. Ainaski melkein. Törmäsin propleemaan jos kuvat ovat 2272 x1704 resoluution kokoiksia niin pikkukuvat ei niihin muodostu. Joudunko käsipelin ne pienentään. Vai onnistuisiko liian suurien kuvien pienentäminen scriptin avulla. alussa 12:31 14.6.06 Miten tuon sais silleen että iso kuva skaalautuisi selaimen ikkunan kokoiseksi tai sen voisi itse jotenkin määrät kuinka isona näyttää? nyt jos laittaa liian ison kuvan niin selainta joutuu "hinkkamaan". SrOne 02:03 3.3.08 Mites ton saa ottamaan nuo kuvat, että hakisi ne kansiosta eikä siitä missä se on? |
![]() Haku
|