![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Still |
|
||||
|
PHP-программист ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
Поиск использовал, темы находил, пробовал, не выходит.
Описание (работы, алгоритма) Есть некий каталог с данными и галереей фотографий для каждого экземпляра каталога. С данными, естественно, проблем нет. Все дело в заливке картинок. Алгоритм работы таков: 1. пользователь выбирает определенные фото для закачки; 2. идут проверки размеров и типов файлов; 3. файл закачивается во временную папку на сервере; 4. формируется новый путь для файла; 5. файл перемещается в указанную папку с новым именем (функция move_uploaded_file()); 6. с помощью функции img_resize() (код ниже) производится: 6.1. уменьшение разрешения фото до необходимых размеров с перезаписью файла; 6.2. уменьшение разрешения фото до размеров превью-показа с созданием еще одного фото; 7. данные заносятся в БД. Функция img_resize:
Думаю функция известна многим, так как самая ходовая в сети. Проблема При обработке данной функции вылетает эксепшн переполнения памяти: Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 4096 bytes) in (...)www.host.com.ua/.../save.php on line 384 точнее вот этот участок:
Причем заливаемое фото весит 560 КБ. Перепробовал уже все, что нашел. Вплоть до ini_set("memory_limit", "128M"). Заранее спасибо! |
||||
|
|||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Разрешение картинки какое? В памяти она будет жрать width*height*32
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Still |
|
|||
|
PHP-программист ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
solenko, это будет размер в битах?
Размер тестируемого фото 1600х2133, но возможно размеры и в два раза больше. |
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
да. но все же размер может и отличаться. мне лично неизвестно, как храинтся ресурс графики в PHP. может, там используются индексированные цвета. может - deflate-компрессия на лету. может - ещё что-то. но лучше ориентироваться на эту цифру. на самом деле, самое надежное средство - изменить php.ini, ini_set может не иметь действия по причине ограничения параметров безопасности. или же других причин. Добавлено через 2 минуты и 23 секунды с другой стороны,
переводится как
не вижу ограничения в 128 Мб. указан предел в 20 Мб. |
||||
|
|||||
| Still |
|
|||
|
PHP-программист ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
skyboy, да, я это тоже заметил, отсюда следует, что ini_set действительно не изменяет значение memory_limit. Однако возможности изменить php.ini нет. Есть ли другие способы уменьшить картинку без применения данной функции (и соответственно используемых в ней функциях)? |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Консольные утилиты. Конкретной не подскажу, но google, думаю, подскажет ) -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Canarat |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 11.3.2008 Где: Каспий Репутация: 5 Всего: 5 |
http://www.imagemagick.org/script/command-...ions.php#resize
Still, здесь полный справочник по imagemagick, если он установлен на сервере. Это сообщение отредактировал(а) Canarat - 28.10.2008, 13:53 |
|||
|
||||
| Still |
|
|||
|
PHP-программист ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
Нашел ошибку, а точнее это не обработка изображений разрешение которых более 1400х1400 пикселей, а сам размер файла не важен, конечно пятимегабайтные не тестировал.
Всем спасибо! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |