Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [GD]Funkcja tworząca ikonki .jpg, Adaptacja do .gif i .png
Master Miko
post
Post #1





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam, oto skrypt tworzący ikonki (obrazki o mniejszych wymiarach).

Podaje się 2 wartości:

dir - ścieżka do pliku
scale - skala pliku (długość boku małej ikonki)

skrypt inicjuje się przez:

  1. <?php
  2.  
  3. <img src="icon.php?dir=(sciezka)&scale=(skala)" alt="Opis...">
  4.  
  5. ?>


Skrypt działa, bardzo fajnie, ale jak dostosować go do tego, żeby również przetwarzał pliki png i gif?
Skrypt został napisany przeze mnie z pomocą książek i for tongue.gif

PS. chciałbym, aby jeśli jakiś plik nie istnieje, zamist normalnego krzyżyka, pojawiał się przeze mnie ustalony plik obrazkowy
PS2. Każdy może użyć tego pliku
PS3. Jakie zabezpieczenia polecilibyście zastosować?



Plik icon.php:
  1. <?php
  2.  header("Content-type: image/jpg");
  3.  $imgName = $_GET['dir']; // Pobiera plik razem ze ścieżką
  4.  $size = $_GET['scale']; // Jaka skala ma być - $size wyznacza długość boku, a wysokość jest dostosowana.
  5.  
  6. if(!($img = imagecreatefromjpeg($imgName))){
  7. echo("Nie Można otworzyć Pliku - $imgName");
  8. return false;
  9. }
  10.  
  11. $img_w = imagesx($img);
  12. $img_h = imagesy($img);
  13. $ratio = $img_w / $img_h;
  14.  
  15. if($ratio > 1){
  16. $new_img_w = $size;
  17. $new_img_h = ($size / $ratio);
  18. } else {
  19. $new_img_w = ($size * $ratio);
  20. $new_img_h = $size;
  21. }
  22. $tempImg = imagecreatetruecolor($new_img_w, $new_img_h);
  23. imagecopyresampled($tempImg, $img, 0, 0, 0, 0, $new_img_w, $new_img_h, $img_w, $img_h);
  24. $name = substr($imgName, 0, strlen($imgName) - 4);
  25. $name = $name."small.jpg";
  26. imagejpeg($tempImg, $name);
  27. Header('Content-type: image/jpeg');
  28. imagejpeg($tempImg, '', 50);
  29. imagedestroy($tempImg);
  30. ?>


Proszę o pomoc.


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 04:10