Новичок
Покинул форум
Сообщений всего: 2
Дата рег-ции: Нояб. 2013
Помог: 0 раз(а)
|
Функция изменения размера изображения в папке, на локальном сервере работает,
на хосте пишет Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 17088 bytes). Как понимаю, нехватает ОП, однако могу расширить её до 64м, ошибка таже, только доступный объем больше... В чем может быть проблема?
CODE ( htmlphp):
скопировать код в буфер обмена
#//$path = 'img/'; #//$width='50'; #//$height='50'; #//$copy='img/thumbs/'; function rez($path,$copy,$width,$height) { $quality = 100; $color = 0xFFFFFF; $files = glob("$path*.jpg"); //array_push($files,glob("$path*.JPG")); for($i = 0, $length = count($files); $i < $length; $i++) { //echo "$files[$i] ----- $i <br>"; // Исключаем из списка директории: if( is_dir($path.$files[$i]) ) { unset($files[$i]); }; }; //die($files[0]); for($i=0,$L=count($files);$i<$L;$i++) { #ini_set("memory_limit", "64M"); $src='./'.$files[$i]; $files[$i] = substr($files[$i],$exp); $out=$copy.$files[$i]; //die ($out); // Если файл не существует return false; echo "нет такого файла"; } // Получаем массив с информацией о размере и формате картинки (mime) // Исходя из формата (mime) картинки, узнаем с каким форматом имеем дело //и какую функцию использовать для ее создания $picfunc = 'imagecreatefrom'.$format; // Вычилсить горизонтальное соотношение $gor = $width / $size[0]; // Вертикальное соотношение $ver = $height / $size[1]; // Если не задана высота, вычислить изходя из ширины, пропорционально if ($height == 0) { $ver = $gor; $height = $ver * $size[1]; } // Так же если не задана ширина elseif ($width == 0) { $gor = $ver; $width = $gor * $size[0]; } // Формируем размер изображения $ratio = min($gor, $ver); // Нужно ли пропорциональное преобразование if ($gor == $ratio) $use_gor = true; else $use_gor = false; $new_width = $use_gor ? $width : floor($size[0] * $ratio); $new_height = !$use_gor ? $height : floor($size[1] * $ratio); $new_left = $use_gor ? 0 : floor(($width - $new_width) / 2); $new_top = !$use_gor ? 0 : floor(($height - $new_height) / 2); $picsrc = $picfunc($src); // Создание изображения в памяти // Заполнение цветом // Нанесение старого на новое imagecopyresampled($picout, $picsrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]); // Создание файла изображения // Очистка памяти //return true; }; };
|