To raczej nie wina kodu
Jak pisałem wyżej.
obrazki full hd przechodzą - mniejsze też. Powyżej 4000x3000 jest problem.
Gdzieś opisali że to wina serwera to jest raz a pozatym wydajniejszy jest imagemagick.
kod:
function photo_resize($file, $dir, $n_size){
$pic_res = pic_res($file, $dir);
$pic_w = $pic_res[0]; $pic_h = $pic_res[1];
if(($pic_w > $pic_h)&&($pic_w > $n_size)){ //poziome
$pic_wn = $n_size;
$divisor = ($pic_w/$pic_wn);
$pic_hn = round($pic_h/$divisor); }
elseif(($pic_w < $pic_h)&&($pic_h > $n_size)){ //pionowe
$pic_hn = $n_size;
$divisor = ($pic_h/$pic_hn);
$pic_wn = round($pic_w/$divisor); }
else{ // jesli mniejszy niż 800px
$pic_wn = $pic_w;
$pic_hn = $pic_h;
}
$pic = imagecreatefromjpeg($dir.$file);
$new_size = imagecreatetruecolor($pic_wn, $pic_hn);
imagecopyresampled($new_size, $pic, 0, 0, 0, 0, $pic_wn, $pic_hn, imagesx($pic), imagesy($pic));
$save = $dir.$file;
$new_photo = imagejpeg($new_size, $save, 100);
return $new_photo;
}
może nie tyle serwera co za mało przeznaczyłem pamięci na to działanie.
A tutaj opis problemu :
http://stackoverflow.com/questions/12661/e...resizing-in-php