Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt co utworzy miniaturki w katalogu przez www
Forum PHP.pl > Forum > Przedszkole
motor
Nie wiem jak mam się do tego zabrać , mam katalog a w nim zdjęcia chciałby m zrobić skrypt który na podstawie zdjęć w katalogu stworzy miniaturki,
wyznacznikiem czy ma zrobić będzie np szerokość minimalna
Master Miko
Niestety skryptu gotowego Ci nie podam (bo nie mam), ale jeśli masz cały katalog zdjęć to mógłbyś...

1. Najpierw użyć readdir do odczytania zdjęć z katalogu
2. Pobierasz przez path info rozszeżenie pliku i sprawdzasz czy to jest obrazek
3.Teraz stosujesz mechanizm pomniejszający (napewno znajdziesz na forum) i zapisujesz plik.
motor
Ok skrypt już mam ale jak mam sprawdzić zeby robił tylko jpg ?

  1. <?php
  2.  
  3.  
  4.  
  5. $default_dir = "zdjecia/";
  6. if(!$dp = opendir($default_dir))
  7. {
  8. echo "Nie moge otworzyc ".$default_dir.".";
  9. }
  10. else
  11. {
  12. while($file = readdir($dp))
  13. {
  14. if($file != '.' && $file != '..' )
  15. {
  16.  
  17.  
  18. $nazwanowa = substr($file, 3);
  19.  
  20.  
  21.  
  22. $nowe ="zdjecia/";
  23. $zdjecie = "zdjecia/$file";
  24.  
  25.  
  26.  
  27.  
  28.  
  29. $quality = "65"; 
  30. $imagedata = GetImageSize($zdjecie);
  31. $imagewidth = $imagedata[0];
  32. $imageheight = $imagedata[1];
  33.  $imagetype = $imagedata[2];
  34.  
  35.  $shrinkage = "1";
  36. $dest_height = "75";
  37. $dest_width = "100";
  38.  
  39. $sciezkan="zdjecia/pojazdy/";
  40.  
  41.  
  42. if ($imagewidth > "140" && !file_exists("$sciezkan"."ma_"."$nazwanowa")){
  43.  
  44.  
  45.  
  46. print" <li> $nazwanowa </li>";
  47.  
  48.  $src_img = imagecreatefromjpeg($zdjecie);
  49.  $dst_img = imageCreateTrueColor($dest_width, $dest_height);
  50. ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $imagewidth, $imageheight);
  51. imagejpeg($dst_img,$nowe."ma_".$nazwanowa, $quality);
  52.  
  53. imagedestroy($src_img);
  54. imagedestroy($dst_img);
  55.  
  56. }
  57.  
  58.  
  59. }
  60. }
  61. closedir($dp);
  62. }
  63. ?>
Master Miko
  1. <?php
  2.  
  3.  
  4. $path_parts = pathinfo($file);
  5. $file_ext = $path_parts['extension'];
  6.  
  7. $file_ext = strtolower($file_ext); // nie wiem czy to jest potrzebne...
  8.  
  9. if($file_ext == "jpg") {
  10.  
  11. echo "To jest jpg";
  12.  
  13.  
  14.  
  15. } else {
  16.  
  17. echo "To nie jest jpg...";
  18.  
  19. }
  20.  
  21.  
  22.  
  23. ?>





czyli:



  1.  
  2.  
  3.  
  4.  
  5. <?php
  6.  
  7.  
  8.  
  9. $default_dir = "zdjecia/";
  10. if(!$dp = opendir($default_dir))
  11. {
  12. echo "Nie moge otworzyc ".$default_dir.".";
  13. }
  14. else
  15. {
  16. while($file = readdir($dp))
  17. {
  18.  
  19. $path_parts = pathinfo($file);
  20. $file_ext = $path_parts['extension'];
  21. $file_ext = strtolower($file_ext); // nie wiem czy to jest potrzebne...
  22.  
  23. if($file != '.' && $file != '..' && $file_ext == "jpg")
  24. {
  25.  
  26.  
  27. $nazwanowa = substr($file, 3);
  28.  
  29.  
  30.  
  31. $nowe ="zdjecia/";
  32. $zdjecie = "zdjecia/$file";
  33.  
  34.  
  35.  
  36.  
  37.  
  38. $quality = "65"; 
  39. $imagedata = GetImageSize($zdjecie);
  40. $imagewidth = $imagedata[0];
  41. $imageheight = $imagedata[1];
  42.  $imagetype = $imagedata[2];
  43.  
  44.  $shrinkage = "1";
  45. $dest_height = "75";
  46. $dest_width = "100";
  47.  
  48. $sciezkan="zdjecia/pojazdy/";
  49.  
  50.  
  51. if ($imagewidth > "140" && !file_exists("$sciezkan"."ma_"."$nazwanowa")){
  52.  
  53.  
  54.  
  55. print" <li> $nazwanowa </li>";
  56.  
  57.  $src_img = imagecreatefromjpeg($zdjecie);
  58.  $dst_img = imageCreateTrueColor($dest_width, $dest_height);
  59. ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $imagewidth, $imageheight);
  60. imagejpeg($dst_img,$nowe."ma_".$nazwanowa, $quality);
  61.  
  62. imagedestroy($src_img);
  63. imagedestroy($dst_img);
  64.  
  65. }
  66.  
  67.  
  68. }
  69. }
  70. closedir($dp);
  71. }
  72. ?>
  73.  
  74.  
  75.  
Vogel
Cytat(Master Miko @ 2006-04-30 20:27:00)

tego sie nie robi samym rozserzeniem tyko getimagesize()
motor
A do tego nie trzeba jeszcze dodać
- jpg
- jpeg

questionmark.gif? żeby działało zawsze
Master Miko
Ja robie to metodą, że skrypt akceptuje tylko pliki .jpg (pliki .jpeg już nie, ale da się to zmodyfikować)

Sposób Vogela jest również dobry, może nawet lepszy... ale ja to zrobiłem tak. Toretycznie wtedy hakkkkkkkkker może napisać srkypt, napisać go w php, zmienić rozszeżenie na .jpg i wrzucić na serwer... tylko po co?
  1. <?php
  2.  
  3.  
  4.  
  5. if(@getimagesize($filename)) {
  6.  
  7. echo "To plik zdjęciowy";
  8.  
  9. } else {
  10.  
  11.  
  12. echo "To nie plik zdjęciowy!";
  13.  
  14. }
  15.  
  16.  
  17.  
  18. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.