Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] -resize image
Forum PHP.pl > Forum > Przedszkole
Sasuke Uchiha
Napisałem sobie prosty skrypt wrzucania obrazków na serwer który ma w głównej mieże odrazu zmieniać ich rozmiar na właściwy ale coś jednak jest nie tak a mianowicie:

1. Nie zawsze mi robi taki wymiar jak podałem czyli 69 px na 69 px
  1. system('convert img/avatars/'.$rand.'.png -resize 69x69 img/avatars/'.$rand.'.png');


2. Gdy dodaje jakiś naprawdę duży obrazek to wywala mi

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /edit_profil.php on line 21
ikssde
Pokaż więcej kodu, między innymi tą linijkę 21, to pomyślimy smile.gif
Sasuke Uchiha
ok, formularza nie wstawiam bo nie ma sensu
  1. $edit_user = "SELECT id, login, password, email, phone, first_name, last_name, gadu_gadu, status, level, games, premium, clan, points_shop, age, info, sex, location, city, avatar, photo, views, active, site
  2. FROM users WHERE id=".$id_user."" or die('mysql_error');
  3. $result_edit_user = mysql_query($edit_user);
  4. $row_edit_user = mysql_fetch_array($result_edit_user);
  5.  
  6. if($_POST['actions'] == 'upload'){
  7.  
  8. $file_exe = "png";
  9. $rand = rand(1,999999);
  10. $file_type = $_FILES['pliczek']['name'];
  11. $exe = explode('.', $file_type);
  12. $exe_file_image = end($exe);
  13.  
  14.  
  15.  
  16.  
  17. $avatar = mysql_query("SELECT avatar FROM users WHERE avatar='$rand".$exe_file_image."'");
  18. if(mysql_num_rows($avatar) == 0){
  19. if($_FILES['pliczek']['size'] < 1024001){
  20. list($width, $height) = getimagesize($_FILES['pliczek']['tmp_name']);
  21. if (($width > 70 AND $height > 70) OR ($width < 200 AND $height < 200)) {
  22. if ($file_exe == $exe_file_image){
  23. echo $_FILES['pliczek']['size'];
  24. if (move_uploaded_file($_FILES['pliczek']['tmp_name'], "img/avatars/$rand.png")) {
  25.  
  26. system('convert img/avatars/'.$rand.'.png -resize 70x70 img/avatars/'.$rand.'.png');
  27. $sql = mysql_query("UPDATE users SET avatar='$rand.".$exe_file_image."' WHERE id='$id_user'") or die ('mysql_error()');
  28. echo "Plik został załadowany poprawnie..."; echo $exe_file_image;
  29. } else{ echo "Nie dodalo i chuj"; }
  30. } else{ echo "Plik nie jest plikiem PNG"; echo $exe_file_image; }
  31. } else{ echo"walisz kupa wamiarowa"; }
  32. } else{ echo "Nie ten rozmiar"; }
  33. } else{ echo "nie jest dobrze z avataraem"; }
  34. }
ikssde
Jakie masz rozbieżności w tym rozmiarze? Mogą być spowodowane tym, że nie da się zmniejszyć zdjęcia do takich wymiarów zachowując proporcje.

Jeśli chodzi o problem z getimagesize to może w formularzu masz określony maksymalny rozmiar pliku? Sprawdź sobie co zawiera $_FILES jak wrzucasz taki duży plik.

@edit Konfiguracja serwera również może nie pozwalać na wrzucanie dużych plików, rzuć okiem w php.ini i popatrz jakie masz wartości przy php_value upload_max_filesize, php_value post_max_size, php_value max_input_time
Sasuke Uchiha
a nie ta się zlekceważyć proporcji ? ja muszę mieć ten element stały o wymiarach takich samych za każdym razem... czyli 70 px na 70 px a np mi wrzuca 70 px wysokości i szerokości 58 albo 12. albo ileś tam szok ;9
ikssde
Pewnie się da, spróbuj w ten sposób:

Kod
system('convert img/avatars/'.$rand.'.png -resize '69x69!' img/avatars/'.$rand.'.png');
Sasuke Uchiha
DZIĘKI! zaraz obadam ten drugi problem i dam znać
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.