Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 9216 bytes) in /home/vol3/byethost31.com/wir-wolf.org.ua/htdocs/admin/req.php on line 28 PHP: <?php class imeage_edit { function editsize($filename2){ // The file //$filename = 'test.jpg'; $filename = "temp_folder/" . $filename2; // Set a maximum height and width $width = 200; $height = 200; // Content type //header('Content-type: image/jpeg'); // Get new dimensions list($width_orig, $height_orig) = getimagesize($filename); $ratio_orig = $width_orig/$height_orig; if ($width/$height > $ratio_orig) { $width = $height*$ratio_orig; } else { $height = $width/$ratio_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Output //imagejpeg($image_p, null, 100); return $image_p; } function imageresize($outfile,$infile2,$quality) { $infile = "temp_folder/" . $infile2; $size = getimagesize($infile); $neww = $size[0]; $newh = $size[1]; $im=imagecreatefromjpeg($infile); $k1=$neww/imagesx($im); $k2=$newh/imagesy($im); $k=$k1>$k2?$k2:$k1; $w=intval(imagesx($im)*$k); $h=intval(imagesy($im)*$k); $im1=imagecreatetruecolor($w,$h); imagecopyresampled($im1,$im,0,0,0,0,$w,$h,imagesx($im),imagesy($im)); imagejpeg($im1,$outfile,$quality); imagedestroy($im); imagedestroy($im1); } } ?> Не могу понять в чем проблема...
у меня такое было когда пытался вывести все строки из 40-метрового файла...решил по 10к строк выводить...но здесь картинки...короче говоря...они слишком большие...
или попробуй дать пхп больше памяти..(как вариант, хотя нах не надо...) не всем английский под силу =)
wir_wolf сказано: скрипт пытался отожрать памяти (tried to allocate 9216 bytes) по такому то пути /home/vol3/byethost31.com/b31_3234203/wir-wolf.org.ua/htdocs/admin/req.php и пытался он это сделать в строке 28 - on line 28 но ему не дали. ибо Allowed memory size of 25165824 bytes exhausted - разрешенный размер памяти "был, да весь вышел". а так как ему надо, а не дают - он и прерывается. 25165824 bytes это 25 165 824 байт. Т.е. 25 миллионов. Т.е. почти 25 мегабайт. ( а фактически - ровненько 24 мегабайта ). Лимит памяти на скрипт можно менять.
Я понимаю что оно пишет,просто не понимаю в чем причина, картинки не больше метра метр.... Хм.. а может быть из-за длинного названия файла? igordata, обработка идет в цыкле, каждое фото обрабатывается отдельно.
хы, это он не больше метра с учетом jpg-компрессии. а в памяти он будет занимать Width * Height * 4 байта. после декомпрессии.
ну как уже писали, максимальный размер выделяемой скприту памяти для выполнения настраивается в каком-то конфиге. вообще, если в гугле набрать он миллион записей выдаст.
ну тогда только если переводить картинрку в индексированный цвет и сохранять. тогда, если сохранить в 256ти цветной палитре, можно снизить потребляемую память в 4 раза. и кстати, про хостинг не было ни слова. точно так же, как и то, откуда там берутся файлы картинок.
Я передумал другой способ, у меня Uploader написан на AS3. Можно через flashvars передать флешке максимальный размер, и при попытке загрузить картинку на сервер, флешка будет подсчитывать размер изображения, и если он больше чем максимальный размер выделяемый на скрипт, юзеру будет писать, типу "Эй чувак, твоя фотка слишком велика". Проблема в другом, как этот максимально допустимый размер получить... в phpinfo() я нашел этот параметр, а вот как его получить в виде пременной в скрипте, ума не приложу..
Ну так что, как мне это реализовать? в гугле был, не нашел ничего полезного.. а по поводу я передумал так как галерея для фото, и когда грузишь туда фотки сделаны камерой 8 megepixel + все фото превышают размер.