Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana rozmiaru oraz zapis miniaturek do pliku
Forum PHP.pl > Forum > Przedszkole
vtuner
Witam,

Napotkałem ostatnio mały problem. Otóż przekazuje za pomocą INPUT o typie FILE jakiś plik JPG (o rozmiarze min. 800x600). Następnie chciałbym z tego obrazka stworzyć dwie miniaturki:

1. rozdzielczość 520 x proporcjonalna_wysokosc
2. rozdzielczość 100 x proporcjonalna_wysokosc

i zapisać obie miniaturki w odpowiednim katalogu pod odpowiednią nazwą. Pliku pierwotnego (o rozmiarze min. 800x600) nie chciałbym zapisywać.

Niestety nie mogę co tych celów zastosować klasy ImageMagick

Z góry dziękuje za pomoc smile.gif
pyro
to zastosuj gd2
vtuner
Tak, Tak domyślam się, że to będzie ta biblioteka, ale nie znam na tyle funkcji GD2, dlatego prosiłbym o rozszerzenie tego tematu.
mike
Proszę bardzo: Image Processing (GD)
A to jedna z funkcji, która napewno Cię zaciekawi: imagecopyresized (w opisie i komentarzach masz gotowca).
Dodatkowo na tym forum masz sporo gotowców.
guilty82
funkcja do zmiany
  1. <?php
  2. function resizethumb($imgName, $size)
  3. {
  4.    if (!($img = imagecreatefromjpeg($imgName))) {
  5.        echo 'Nie mogę otworzyć plik:'.$imgName;
  6.        exit();
  7.    }
  8.    
  9.    $img_w = imagesx($img);
  10.    $img_h = imagesy($img);
  11.    
  12.    $ratio = $img_w / $img_h;
  13.    
  14.    if ($ratio >1) {
  15.        $new_img_w = $size;
  16.        $new_img_h = ($size / $ratio);
  17.    
  18.    } else {
  19.        $new_img_w = ($size * $ratio);
  20.        $new_img_h = $size;
  21.    
  22.    }
  23.    
  24.    $tempImg = imagecreatetruecolor($new_img_w, $new_img_h);
  25.    imagecopyresampled($tempImg, $img, 0, 0, 0, 0, $new_img_w, $new_img_h, $img_w, $img_h);
  26.    
  27.    $name = substr($imgName, 0, strlen($imgName) - 4);
  28.    $name = $name."-resized.jpg";
  29.    
  30.    imagejpeg($tempImg, $name);
  31.  
  32. }
  33. ?>


Wywolanie

  1. <?php
  2. resizethumb(obrazek.jpg, 520);
  3. ?>


Moze pomoze smile.gif
fernet
Funkcje znajdzesz w manualu i do napisana zostanie ci rownanie matematyczne podobne do Image Size z photoshopa pamietaj o zaokragleniu
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.