PLIK index.php
<?php
?>
<?php
// funkcja pokazuje katalogi
function show_img_folders()
{
while(false !== ($img_dir = readdir($od))) {
if($img_dir!='.' && $img_dir!='..')
if(is_dir($img_dir)) echo '<a href="?dir='.$img_dir.'">'.$img_dir.'</a><br />'; }
}
// funkcja pobiera obrazki z katalogu
function get_images($dir)
{
// tablica z roszerzeniami ktore bedzie obslugiwac nasza galeria
$extensions = array('jpg','jpeg');
// ladujemy obrazki
while(false !== ($image = readdir($od))) {
if($image != '.' && $image != '..')
{
$images[] = $image;
}
}
return $images;
}
if(isset($_GET['dir'])) // sprawdzamy czy ustawiono zmienna $_GET {
if(is_dir($_GET['dir'])) // sprawdzamy czy istnieje katalog {
$dir = $_GET['dir'].'/'; // katalog z fotkami
$images = get_images($dir); // pobieramy do zmiennej nazwy obrazkow
$col = 4; // ilosc kolumn obrazkow
// sprawdzamy czy tablica zawiera jakies nazwy obrazkow
if(count($images) == 0
) die('Nie znaleziono plikow graficznych.<br />'."<a href='$up'>Wstecz</a>");
// wyswietlamy wszystko
echo "<a href='$up'>Wstecz</a>"; echo '<table align="center" style="border: 1px solid #000000"> <tr><td colspan="'.$col.'"></td><tr>';
foreach($images as $img)
{
echo '<td align="center"><table><tr><td valign="top" align="center"><a href="'.$dir.$img.'" target="_blank"><img src="graph.php?img_name='.$dir.$img.'" border="0"></a></td></tr><tr><td align="center"></td></tr></table>'; $i++;
if($i==$col) // jesli $i = liczbie kolumn, tworzymy nowy wiersz
{
$i=0;
}
}
}
else echo 'Katalog nie istnieje'; }
else show_img_folders(); // pokazujemy katalogi
?>
PLIK graph.php
<?php
// File and new size
$filename = $_GET['img_name'];
$percent = 0.15;
// Content type
header('Content-type: image/jpeg');
// Get new sizes
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$source = imagecreatefromjpeg($filename);
$thumb = imagecreatetruecolor($newwidth, $newheight);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
?>
Cześć powyższy skrypt czyta foldery ze zdjęciami, po wejściu wyświetla miniatury, niestety są one tworzone w locie. Czytałem, że przy dużej ilości zdjęć galeria obciąża bardzo serwer i mam taką prośbę odnośnie tego, czy mógłby ktoś przerobić ten skrypt aby zapisywał miniatury do podfolderu images z przedroskiem th_ i wyświetlał je.
Do tej pory udało mi się zapisać miniatury do folderu images z przedrostkiem, nie wiem czy to jest najlepszy sposób, na inny nie wpadłem, jeżeli macie jakieś propozycje to bardzo proszę. Natomiast nie mam pojęcia jak linkom przypisać miniatury ;/
PLIK graph.php
<?php
// File and new size
$filename = $_GET['img_name'];
$percent = 0.15;
// Content type
header('Content-type: image/jpeg');
// Get new sizes
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$source = imagecreatefromjpeg($filename);
$thumb = imagecreatetruecolor($newwidth, $newheight);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
$prefix = 'images/th_images/'.'th_'.$file[1];
imagejpeg($thumb, $prefix, 85);
?>
nikt nie ma pomysłu?