Witam
Chciałem zapytać czy jest możliwa zmiana (na stałe) rozmiarów zdjęcia po tronie serwera. Ogólnie codzi o to aby user wysyłał zdjęcie przez formularz a ono było dostosowywane i zapisywane na koncie?
Jeśli tak to byłbym wdzięczny za jakieś proste rozwiązania (tylko PHP).
[PHP] Zmiana rozmiaru obrazka na serwerze
Re: [PHP] Zmiana rozmiaru obrazka na serwerze
Ehem, może się nie zrozumieliśmy. Ja nie potrzebuje generować miniaturki z PHP, ale chcę zapisać NA serwer obrazek zmniejszony w stosunku do wysyłanego prze formularz.
Podam inny przykład zastosowania: robię galerię w której na jednej stronie byłoby dużo miniaturek. Generowanie każdej z nich przez GD obciążało by nieźle serwer. Dlatego przydałby się skrypt dostępny dla admina który wysyłał by na serwer jeden plik w oryginalnym rozmiarze a drugi jako miniaturkę.
Mam nadzieję że jaśniej wytłumaczyłem.
Podam inny przykład zastosowania: robię galerię w której na jednej stronie byłoby dużo miniaturek. Generowanie każdej z nich przez GD obciążało by nieźle serwer. Dlatego przydałby się skrypt dostępny dla admina który wysyłał by na serwer jeden plik w oryginalnym rozmiarze a drugi jako miniaturkę.
Mam nadzieję że jaśniej wytłumaczyłem.
Re: [PHP] Zmiana rozmiaru obrazka na serwerze
Ech... troche pracy wlasnej....
jakos tak.... przecie calosc skryptu jest niezalezna czy robisz do jakiego rozmiaru przeskalowujesz (np. do miniaturki)... jedyna roznica, ze w imagejpeg podajesz dodatkowo nazwe pliku...
Kod: Zaznacz cały
// kopiujesz uploadowany plik
move_uploaded_file($_FILES['nazwa_z_formularza']['tmp_name'], $nazwa_pliku);
// sprawdzasz jego rozmiar
list($width, $height) = getimagesize($nazwa_pliku);
// ustalasz nowe wymiary
$scale = min($MAX_NEW_WIDTH/$width, $MAX_NEW_HEIGHT/$height);
$new_width = floor($scale*$width);
$new_height = floor($scale*$height);
// wczytujesz fotke
$source = imagecreatefromjpeg($nazwa_pliku);
// robisz nowa fotke
$dest = imagecreatetruecolor($new_width, $new_height);
// kopiujesz ze zmiana rozmiaru
imagecopyresized($dest, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// zapisujesz do pliku
imagejpeg($zoom,$nazwa_nowego_pliku);
unlink($nazwa_pliku);
Re: [PHP] Zmiana rozmiaru obrazka na serwerze
No proszę, jedna mała rzecz której szukałem w manualu a cieszy. Poprostu nie wiedziałem że
Tak działa i że można w nim podawać 2 atrybut który spowoduje zapisanie pliku. Tylko teraz malutka poprawka ze tam zamiast $zoom powinno być $dest.
Zabieram się za przerobienie tego na klasę działąjącą z jpg / png / gif. Jak by ktoś potewem chciał efekt końcowy to piszcie.
Kod: Zaznacz cały
imagejpeg ($zoom,$nazwa_nowego_pliku);Zabieram się za przerobienie tego na klasę działąjącą z jpg / png / gif. Jak by ktoś potewem chciał efekt końcowy to piszcie.
Re: [PHP] Zmiana rozmiaru obrazka na serwerze
polecam rowniez imageinterlace.
btw. imagejpeg moze miec jeszcze trzeci parametr odpowiadajacy za jakosc/kompresje...
btw. imagejpeg moze miec jeszcze trzeci parametr odpowiadajacy za jakosc/kompresje...
