Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Rozmiar obrazka
Forum PHP.pl > Forum > Przedszkole
rosirosi
Witam Panowie... Mam taki problem i mam nadzieje ze mi pomozecie, owy skrypt ktory przedstawiam ponizej sluzy do dodawania zdjec produktu, po podaniu lokalizacji zdjecia dodawane jest zdjecie w rozmiarze orginalnym do katalogu images i miniaturka tego zdjecia o wymiarach 180x132 do katalogu image/thumbs, problem moj polega na tym ze chcialbym zeby jeszcze obrazek orginalny zostal przystosowywany do okreslonej rozdzielczosci, np. zeby kazde zdjecie z ktorego bedzie robiona miniaturka bylo powiedzmy w rozmiarze 800x600... Mozecie pomoc ?
z gory dziekuje i pzodrawiam

  1. <?php
  2. $naz = $_POST['naz'];
  3. $price = $_POST['price'];
  4. $inventory = $_POST['inventory'];
  5. $rodzaj = $_POST['rodzaj'];
  6. $image_tempname = $_FILES['image_filename']['name'];
  7.  
  8.  
  9. // umieszczenie obrazu i sprawdzenie jego formatu
  10. $ImageDir ="images/";
  11.  
  12. //**WSTAW TEN WIERSZ
  13. $ImageThumb = $ImageDir . "thumbs/";
  14. //**KONIEC WSTAWIENIA
  15.  
  16. $ImageName = $ImageDir . $image_tempname;
  17.  
  18. if (move_uploaded_file($_FILES['image_filename']['tmp_name'],
  19.                      $ImageName)) {
  20.  
  21.  // pobranie informacji na temat umieszczonego obrazu
  22.  list($width, $height, $type, $attr) = getimagesize($ImageName);
  23.  
  24.  if ($type3) {
  25.    echo "Przykro nam, ale przesłany obraz nie jest w formacie GIF, JPG lub " .
  26.         "PNG.";
  27.    echo "Kliknij przycisk 'Wstecz' w przeglądarce i spróbuj ponownie.";
  28.  } else {
  29.  
  30.    // obraz jest w poprawnym formacie, można kontynuować
  31.  
  32.  // wstawienie informacji w tabeli images
  33.  
  34.  $insert = "INSERT INTO products
  35.            (products_name, products_proddesc, products_price, products_inventory, products_rodzaj)
  36.            VALUES
  37.            ('$naz', '$opis', '$price', '$inventory', '$rodzaj')";
  38.  $insertresults = mysql_query($insert);
  39.  
  40.  $lastpicid = mysql_insert_id();
  41.  
  42.  $newfilename =  $ImageDir . $lastpicid . ".jpg";
  43.  
  44.  if ($type == 2) {
  45.    rename($ImageName, $newfilename);
  46.  } else {
  47.    if ($type == 1) {
  48.      $image_old = imagecreatefromgif($ImageName);
  49.    } elseif ($type == 3) {
  50.      $image_old = imagecreatefromjpg($ImageName);
  51.         }
  52.  
  53.    // skonwertuj obraz do formatu JPG
  54.    $image_jpg = imagecreatetruecolor($width, $height);
  55.    imagecopyresampled($image_jpg, $image_old, 0, 0, 0, 0,
  56.                     $width, $height, $width, $height);
  57.    imagejpeg($image_jpg, $newfilename);
  58.    imagedestroy($image_old);
  59.    imagedestroy($image_jpg);
  60.  }
  61.  
  62. //**WSTAW NASTĘPUJˇCE WIERSZE
  63.  
  64.  $newthumbname = $ImageThumb . $lastpicid . ".jpg";
  65.  
  66.  // pobierz wymiary miniaturki
  67.  $thumb_width = "180";
  68.  $thumb_height ="132";
  69.  
  70.  // utwórz miniaturkę
  71.  $largeimage = imagecreatefromjpeg($newfilename);
  72.  $thumb = imagecreatetruecolor($thumb_width, $thumb_height);
  73.  imagecopyresampled($thumb, $largeimage, 0, 0, 0, 0,
  74.                    $thumb_width, $thumb_height, $width, $height);
  75.  imagejpeg($thumb, $newthumbname);
  76.  imagedestroy($largeimage);
  77.  imagedestroy($thumb);
  78. //**KONIEC WSTAWIANYCH WIERSZY
  79. ?>
isso
Myślę, że to powinno pomóc: http://www.tomaszozga.pl/example/resizer/resizer.rar z art: link
KCG
Zrób to tak samo, jak miniaturkę, z tym, że zastąp oryginalny plik smile.gif
rosirosi
no juz chyba wszstkiego probowalem, i podmieniac kawalek kodu z miniaturki i pisac od nowa zapisujac sobie zasade pobierania i zapisywania pliku (tego duzego ) i nie wiem, minuiaturka sie robi a duze foto nie.... takie pytanie co robi ten kod
  1. <?php
  2. $lastpicid = mysql_insert_id();
  3. ?>


tak wogole to juz nie mam sil, i prosze o jeszcze jakies sugestie jak moge prosic ? Pozdrawiam i dobranoc
mecenas
Cytat(rosirosi @ 31.01.2009, 01:40:44 ) *
no juz chyba wszstkiego probowalem, i podmieniac kawalek kodu z miniaturki i pisac od nowa zapisujac sobie zasade pobierania i zapisywania pliku (tego duzego ) i nie wiem, minuiaturka sie robi a duze foto nie.... takie pytanie co robi ten kod
  1. <?php
  2. $lastpicid = mysql_insert_id();
  3. ?>


tak wogole to juz nie mam sil, i prosze o jeszcze jakies sugestie jak moge prosic ? Pozdrawiam i dobranoc


No proszę... Pomijając fakt, że chyba sama nazwa zmiennej wskazuje co to jest, to RTFM!

Pierwszy z brzegu przypadkowo wygooglany:

Cytat
mysql_insert_id() zwraca ID wygenerowane dla pola z własnością AUTO_INCREMENT. Funkcja zwróci ID wygenerowane automatycznie przez ostatnią operację INSERT używającą podanego identyfikatora_połączenia . Jeżeli identyfikator_połączenia nie został podany, wykorzystywane jest ostatnio otwarte połączenie.


Podajesz nieprzerobiony kod, zatem nasuwa się sugestia - chcesz gotowca...
Nikt Ci nie wyszuka błędów które ewentualnie zrobiłeś w kodzie, którego nie ruszyłeś. Logiczne.
KCG
W 76 linijce zamiast $newThumbName daj ścieżkę do oryginalnego pliku i oczywiście zmień wymiary. Ot tyle;p
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.