MINIATURKI
miniaturka.php
<?
$imgname = $_GET["pic"];
// adres pliku przekazywany za pomocą parametru pic metodą GET,
// np. miniaturka.php?pic=obrazek.jpg
$x_scale = $_GET["width"];
// szerokość miniaturki. Wysokość zostanie obliczona
// automatycznie. Jeśli chcemy w różnych miejscach mieć różną
// szerokość zastosujmy $x_scale = $_GET["width"]. Wtedy
// szerokość będzie przekazywana parametrem width za pomocą
// metody GET
$check = @GetImageSize($imgname);
// tą funkcją wyciągamy istotne wiadomości (znak @ zapobiega
// wyświetleniu błędu, gdy nie ma danego pliku). Wynikiem jest
// tablica
$width = $check[0]; // szerokość obrazka.
$height = $check[1]; // wysokość obrazka
$mime = $check[2]; // rodzaj obrazka (gif, jpeg, png...)
if ($height > 0) {
// jeśli szerokość jest większa od zera...
$factor = $width/$height; // ...dzielimy szerokość przez wysokość...
$y_scale= @floor($x_scale/$factor); // ...a następnie obliczamy wysokość i zaokrąglamy w dół
} else { // Jeśli szerokość jest mniejsza lub równa zeru...
$y_scale=30; // ...wysokość miniaturki ma wartość 30...
$width=$x_scale; // ...szerokość "oryginału" jest równa szerokości miniaturki...
$height=30; // ... a wysokość równa 30.
}
function LoadImage($imgname) { // Tworzymy nową funkcję odczytującą zawartość obrazka
global $mime, $width, $height; // potrzebny będzie rodzaj obrazka i wymiary oryginału
switch($mime){ // jeśli wartość zmiennej mime wynosi:
case 1: // 1
$im = @ImageCreateFromGif($imgname); // Wczytaj zawartość GIFa $imgname do zmiennej $im
break; // i zakończ pstryczka :)
case 2:// jeśli wartość wynosi 2
$im = @ImageCreateFromJpeg($imgname); // Wczytaj zawartość JPEGa $imgname do zmiennej $im
break; //i zakończ pstryczka
case 3: // Jeśli wartość wynosi 3
$im = @ImageCreateFromPng($imgname); // Wczytaj zawartość pliku PNG $imgname do zmiennej $im
break; // i zakończ pstryczka
default: // gdy wartość jest inna
$im = false; // nie wczytuj nic do zmiennej $im
break; // i zakończ pstryczka
}
if (!$im) { // jeśli nie istnieje zmienna $im
$im = ImageCreate($width, $height); // Utwórz w zmiennej $im obrazek o rozmiarach zdefiniowanych wcześniej
$bgc = ImageColorAllocate ($im, 255, 255, 255); // zapisz w zmiennej $bgc biały kolor (tło)
$tc = ImageColorAllocate ($im, 0, 0, 0); // zapisz w zmiennej $tc czarny kolor
ImageString($im, 1, 2, 2, "Bład: $imgname", $tc); // wypisz komunikat
ImageString($im, 1, 2, 15, "Brak pliku!", $tc); // o błędzie
}
return $im;// funkcja zwróci obrazek
}
function ShowThumb($imgname) {// tworzymy funkcję tworzącą miniaturki
global $x_scale, $y_scale, $width, $height; // będą potrzebne wymiary miniaturki i oryginału
$thumb = ImageCreateTrueColor($x_scale,$y_scale); // Utwórz w zmiennej $thumb obrazek w palecie True Color o wymiarach miniaturki
ImageCopyResampled($thumb, LoadImage($imgname), 0, 0, 0, 0,
$x_scale, $y_scale, $width, $height); // skopiuj i pomniejsz (wygładź) obrazek do zmiennej $thumb
return $thumb;// funkcja zwraca miniaturkę
}
if ($mime=='2') {// Jeśli rozszerzenie obrazka to JPEG
Header("Content-type: image/jpeg"); // wyślij nagłówek JPEGa
ImageJPEG(ShowThumb($imgname), "", 80); // przetwórz obrazek na JPEGa i zwróć go (liczba 80 to jakość obrazka)
}
elseif ($mime=='1') {// Jeśli rozszerzenie obrazka to GIF
Header("Content-type: image/gif"); // wyślij nagłówek GIFa
ImageGIF(ShowThumb($imgname)); // przetwórz obrazek na GIFa i zwróć go
}
elseif ($mime=='3') {// Jeśli rozszerzenie obrazka to PNG
Header("Content-type: image/png"); // wyślij nagłówek PNG
ImagePNG(ShowThumb($imgname)); // przetwórz obrazek na PNG i zwróć go
}
else // w przeciwnym wypadku
die("Ten serwer nie obsługuje funkcji graficznych w PHP"); //zwróć komunikat o błędzie.
?>
Trochę zawiły ten sktypt... Ale przejdźmy dalej. Teraz udoskonalmy nasz skrypt galerii, aby wyświetlał miniaturki. Pokażę tylko część wyświetlającą obrazki:
{
echo '<td>'; //otwieramy nową komórkę
echo '<a href=galeria.php?zdj='.$row['id'].'>’; //otwieramy hiperłącze
echo ‘<img src="miniaturka.php?pic=galeria/'.$row['zdjecie'].'&width=100" border=0 width=100></a>'; //hiperłącze do pliku z miniaturką zdjęcia + zdjęcie
echo '</td>'; //zamykamy komórkę
}
Po dodaniu skryptu z miniaturką katalogi powinny wyglądać tak:
.
|-galeria
| |-plaza.jpg
| |-wczasy.jpg
|-galeria.php
|-miniaturka.php
Myślę, że nie będzie problemów z galerią.
PZDR
Bidziu890
Listing
niema
Dodano przez: bidziu890 Ranga: 0 Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno