Перейти к контенту

Автоизменение размера вложенных картинок


Рекомендуемые сообщения

Пытаюсь написать мод для автоматического изменения вложенных изображений. Срабаюсь на следующей фигне....

добавила в ips_kernel/class_image.php новую функцию для ресайза...

в ней у меня открывается исходный файл, с помощью тамошней функции scale_image определяется нужный размер для ресайза, после чего я создаю новое изображение функцией imagecreatetruecolor. на этом месте иногда просиходит полная остановка, даже без выдачи ошибки при альтернативе

OR DIE (...)

т.е. он туда не попадает, а просто останавливается (белая страница).

 

Фишка вот в чем. На небольших картинках все работает как часы - создает он изображение. А вот на картинках размером где-то 600х600 он останаваливается. Хостер (мастерхост) говорит, что есть некое ограничение на память. Как можно было бы решить эту проблему? Никто не знает, может сталкивался кто?[1119854217:1119854319]

$result = $this->scale_image(array(
    'max_width'  => $need_width,
    'max_height' => $need_height,
    'cur_width'  => $sourcefile_width,
    'cur_height' => $sourcefile_height));
$valid_width = $result['img_width'];
$valid_height = $result['img_height'];
$validfile_id = @imagecreatetruecolor($valid_width, $valid_height)
or die ("error creating image");

 

вот как раз на последем этапе он срубается, даже не выводя die()[1119854217:1119855288]Посмотрела перед последним шагом. Памяти использовано 6.3 МБ, лимит установлен 8Мб. Неужели чтоб создать изображение truecolor 600х600 нужно более 1.7 МБ?

Ссылка на комментарий
Поделиться на других сайтах

Сталкивались, блин...

@imagecreatetruecolor

Собака перед вызовом функции давит все ошибки, которые могут возникнуть. Собаку убери и наблюдай ошибку. Вылетает по нехватке памяти...

Теоретическое решение известно: повышаем доступный скриптам объём памяти при помощи примерно такого .htaccess

php_value memory_limit 16M

или напрямую в php.ini.

Поиск в Google по memory_limit даст ещё примеры...

 

А практически - сразу после такого хостер начинает возмущаться, мол, много жрёте ресурсов и всё такое... :D

Ссылка на комментарий
Поделиться на других сайтах

Убрала собаку - все равно ничего не выводит.

А в пхп.ини я не могу поменять ничего, ведь я же не "сам себе хостер".... А через htaccess попробую конечно....

[1119856309:1119856369]Попробовала - php_value memory_limit 16M - ничего не изменилось :D

Ссылка на комментарий
Поделиться на других сайтах

Убрала собаку - все равно ничего не выводит.

Тогда уверена, что вообще в этом месте ошибка? error.log-то есть? Уж там-то точно должно быть написано, что за ошибка и в каком месте!

Попробовала - php_value memory_limit 16M - ничего не изменилось

Вот-вот, мы тоже на мастерхосте пробовали - ничего не получилось, видимо, доступа нет к .htaccess. Если phpinfo() после создания такого .htaccess открыть, там значение memory_limit какое стоит? Вот когда 16М станет, тогда всё в шоколаде.

Ссылка на комментарий
Поделиться на других сайтах

странно, но в error_log (смотрю через юзер панель на мастерхосте) ничего на эту тему нет. вообще.

 

а вам удалось каким-то образом 8М на 16М поменять?[1119859201:1119859401]у меня сейчас

echo "memory: ".memory_get_usage();
echo $validfile_id = imagecreatetruecolor($valid_width, $valid_height);
echo "created ";

 

дык вот он мне первую строчку выводит только. error_reporting(E_ALL) стоит выше. где он еще может срубать как не тут?[1119859201:1119859618]во! появилась ошибка в еррор_лог:

[Mon Jun 27 12:05:15 2005] [error] PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 450 bytes) in /.../ips_kernel/class_image.php on line 503

[1119859201:1119859702]503 строка - это как раз

echo $validfile_id = imagecreatetruecolor($valid_width, $valid_height);[1119859201:1119948462]Вопрос решился установкой на хостинге своего собственного PHP как CGI и изменением соответствующей настройки в PHP.INI

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.