Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]tworzenie miniaturek
gosienkami
post
Post #1





Grupa: Zarejestrowani
Postów: 305
Pomógł: 1
Dołączył: 27.12.2007

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


witam szukam wyjasnionego skryptu dodawania zdjec do galerii z tworzeniem miniaturek wpisując w do pola dowolną wysokosc i szerokosc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Thorang Hoog
post
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 9
Dołączył: 8.02.2009

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


Wprawdzie nie wiem jakie zrobiłeś błędy powyżej oprócz kilku literówek ;P ale tu masz skrypt który napisałem
  1. <form accept="image/jpeg, image/gif, image/png" accept-charset="iso-8859-2" action="?" enctype="multipart/form-data" method="POST" target="_self">
  2. wysokość: <input type="text" name="wysokosc" value="100" maxlength="4"><br>
  3. szerokość: <input type="text" name="szerokosc" value="100" maxlength="4"><br>
  4. <input type="file" name="zdjecie"><br>
  5. <input type="submit">
  6. </form>
  7. <?PHP
  8.   if(is_uploaded_file($_FILES['zdjecie']['tmp_name']))
  9.   { // plik został przesłany na serwer
  10.      // zmienne wykorzystane w skrypcie
  11.      $ext = false; // przechowuje rozszeżenie jeśli wartość = false plik ma zły format
  12.  
  13.  
  14.      // sprawdzanie przeslanych danych
  15.      $wysokosc = sprintf('%d', $_POST['wysokosc']); // zamiana na liczbe dziesiętną
  16.      $szerokosc = sprintf('%d', $_POST['szerokosc']);
  17.      // sprawdzenie typu przesłanego zdjęcia
  18.      if(eregi('(jpg|jpeg|JPG|JPEG)', $_FILES['zdjecie']['type'])) $ext = "jpg";
  19.      if(eregi('(gif|GIF)', $_FILES['zdjecie']['type'])) $ext = "gif";
  20.      if(eregi('(png|PNG)', $_FILES['zdjecie']['type'])) $ext = "png";
  21.      if($ext && $wysokosc && $szerokosc)
  22.      {// przeslane dane są prawidłowe skrypt jednak nie sprawdza rozmiaru pliku
  23.         do // wygenerowanie nowej nazwy pliku
  24.         {  // wraz z liczbą losową (od 0 do 9999) w celu zapobiegnięcia powtórzeń
  25.            $nazwa_zdjecia = ereg_replace(".(.){3,4}$", "_".rand(0,9999).".".$ext, $_FILES['zdjecie']['name']);
  26.         }while(file_exists("galeria/".$nazwa_zdjecia)); // dopuki nazwa nie będzie orginalna
  27.         // skopiowanie i
  28.         // zmiana wymiarów zdjęcia
  29.         // zmienia rozmiar na wpisane w formularzu
  30.         $img = zmien_rozmiar($_FILES['zdjecie']['tmp_name'], $wysokosc, $szerokosc, $ext);
  31.         // podgląd obrazka max 100x100
  32.         $small = zmien_rozmiar($_FILES['zdjecie']['tmp_name'], 100, 100, $ext);
  33.         if($img && $small)
  34.         {
  35.            switch ($ext)
  36.            {
  37.               case 'jpg':
  38.                  ImageJPEG($img, "galeria/".$nazwa_zdjecia);
  39.                  ImageJPEG($small, "galeria/small_".$nazwa_zdjecia);
  40.                  break;
  41.               case 'png':
  42.                  ImagePNG($img, "galeria/".$nazwa_zdjecia);
  43.                  ImagePNG($small, "galeria/small_".$nazwa_zdjecia);
  44.                  break;
  45.               case 'gif':
  46.                  ImageGIF($img, "galeria/".$nazwa_zdjecia);
  47.                  ImageGIF($small, "galeria/small_".$nazwa_zdjecia);
  48.                  break;
  49.            }
  50.            require("polaczenie.php");
  51.            connection();
  52.            //dodaje nazwę pliku do bazy danych
  53.            // według mnie wystarczy zapisać tylko $nazwa_zdjecia i dodawać 'galeria/' i 'galeria/small_'
  54.            $sql1 = mysql_query("INSERT INTO id SET fotka1='galeria/".$nazwa_zdjecia."', miniaturka='galeria/small_".$nazwa_zdjecia."'");
  55.         }
  56.      }
  57.      else
  58.      {  // przesłane dane są nieprawidłowe
  59.         echo "Przesłane dane są nieprawidłowe.<br>";
  60.         if(!$ext) echo "Plik ma niewłaściwy format.<br>";
  61.         if(!$wysokosc) echo "Wysokość ma niewłaściwy format.<br>";
  62.         if(!$szerokosc) echo "Szerokość ma niewłaściwy format";
  63.      }
  64.   }
  65.   /*
  66.     * funkcja zmienia rozmiar pliku zapisanego na dysku
  67.     * do podanej wysokosci i szerokosci z zachowaniem proporcji
  68.     * wymaga też podania typu pliku (jpg, gif, png)
  69.     * zwraca nowy obraz
  70.     */
  71.   function zmien_rozmiar($zdjecie, $wysokosc, $szerokosc, $ext)
  72.   {
  73.      if($ext == 'jpg')
  74.      {
  75.         if (imagetypes() & IMG_JPG)
  76.         {
  77.            $img = ImageCreateFromJPEG($zdjecie);
  78.         }
  79.         else return false; // brak obsługi plików jpg
  80.      }
  81.      else if($ext == 'gif')
  82.      {
  83.         if (imagetypes() & IMG_GIF)
  84.         {
  85.            $img = ImageCreateFromGIF($zdjecie);
  86.         }
  87.         else return false; // brak obsługi plików gif
  88.      }
  89.      else if($ext == 'png')
  90.      {
  91.         if (imagetypes() & IMG_PNG)
  92.         {
  93.            $img = ImageCreateFromPNG($zdjecie);
  94.         }
  95.         else return false; // brak obsługi plików png
  96.      }
  97.      else
  98.      {
  99.         echo "Zarządano zmiany rozmiaru pliku nieznanego formatu.<BR>";
  100.         return false;
  101.      }
  102.      list($or_szerokosc, $or_wysokosc) = getimagesize($zdjecie);
  103.      // pobranie proporcji zdjęcia
  104.      if($or_szerokosc>$or_wysokosc) // zdjecie szerokie
  105.      {  // szerokość nowego obrazka bez zmian tak jak podano na wejsciu funkcji
  106.         // wyliczanie nowej wysokości z uwzględnieniem proporcji
  107.         $wysokosc = round(($or_wysokosc / $or_szerokosc) * $wysokosc);
  108.      }
  109.      else
  110.      {  // zdjęcie wysokie
  111.         $szerokosc = round(($or_szerokosc / $or_wysokosc) * $szerokosc);
  112.      }
  113.      // tworzy nowy obraz o szerokości i wysokości wyliczonej na początku funkcji
  114.      $new_img = ImageCreateTrueColor($szerokosc, $wysokosc);
  115.      // zmiana rozmiaru
  116.      ImageCopyResampled($new_img, $img, 0,0,0,0, $szerokosc, $wysokosc, $or_szerokosc, $or_wysokosc);
  117.      return $new_img;
  118.   }
  119. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 04:44