Автор Тема: Ресайз картинок  (Прочитано 5860 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ресайз картинок
« : 17 Декабря 2007, 15:42:52 »
Привет всем знатокам!
Столкнулся c одной интересной проблемкой…
Если пользователь закачивает на сервак большую картинку, например 2,2 Mb, не получается сделать превьюшку и даже не получается изменить её размер.
Функции imagecreatefromstring(),  imagecreatetruecolor(),imagecreatefromjpeg() и подобные работают только согласно отпущенного лимита памяти для PHP, а большие картинки этот лимит значительно превышают.
Хотел автоматически уменьшать картинку, но для всех функций одна и та же проблема.
Может кто сталкивался с такой ситуацией, может есть ещё какие способы уменьшить картинку?

Заранее благодарен!

Оффлайн Frion

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 2
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ресайз картинок
« Ответ #1 : 17 Декабря 2007, 16:18:17 »
У меня такая же проблема!!! даже не знаю что и делать, все уже перепробовал не выходит никак, кто подскажет?

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ресайз картинок
« Ответ #2 : 17 Декабря 2007, 16:24:30 »
Вообще говоря, решить-то её можно, просто по другому нужно подходить к вопросу...
Если поставить на серваке затычки, чтобы пользователь не мог закачивать картинки больше допустимого размера, но я хотел избавить этого самого пользователя от этих проверок, а автоматом уменьшать загружаемую картинку...
Но сделать это не получается...

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Ресайз картинок
« Ответ #3 : 17 Декабря 2007, 17:17:52 »
pahal Frion
Господа,
вы сначала разберитесь, где у вас проблема.

Если проблема закачать - так это max_upload_size, переменная окружения.
Если проблема заресайзить - то внимательно читаем комменты в мануале, там и описание всех возможных граблей, и вывода ошибок. С примерами.
http://ru2.php.net/manual/ru/function.imagecreatefromjpeg.php
LJ: Backslashed life (rss)

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ресайз картинок
« Ответ #4 : 17 Декабря 2007, 18:27:15 »
Проблема именно в том, что функции обработки графики не хотят работать с большими картинками и не получается уменьшить её размер, даже если изменить лимит памяти...
Попробовал на серверах провайдеров, лимит меняется, а большая картинка не обрабатывается.

Оффлайн CLiI{er

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glossword.info/
Ресайз картинок
« Ответ #5 : 17 Декабря 2007, 19:55:48 »
А лимит точно меняется?

ini_set(\'memory_limit\', \'50M\');
print ini_get(\'memory_limit\');

При включенном safe-mode значение memory_limit остается прежним.
gw веб-песочница жж

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ресайз картинок
« Ответ #6 : 17 Декабря 2007, 20:23:58 »
Да, print выводит то значение, которое задано, например
ini_set(\'memory_limit\', \'1200M\');
выводит 1200М

Оффлайн CLiI{er

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glossword.info/
Ресайз картинок
« Ответ #7 : 17 Декабря 2007, 21:02:28 »
Тогда могу лишь дать общие рекомендации, которые возможно помогут найти причину:

1. Протестировать на локальной машине. Всё должно работать.

2. Включить error_reporting(E_ALL) и display_errors =  On. Когда у нас картинка не влезает в память, мы должны увидеть сообщение "Fatal error: Allowed memory size ... bytes exhausted". Ставим ограничение на размер файла, если расширить память не удается.

3. Источник фотки. Нередко производители цифровых фотоаппаратов меняют порядок байт в файле изображения, и тогда программы не могут прочитать такой файл.
gw веб-песочница жж

Оффлайн pahal

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 126
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ресайз картинок
« Ответ #8 : 18 Декабря 2007, 16:45:46 »
Всё так и есть...
На локальной машине всё протестировано и в полном поряде.
Сообщение типа Fatal error: Allowed memory size имеется.
Просто хотелось не нагружать пользователя, чтобы картинка уменьшалась автоматом, без его участия, но, похоже, что добиться этого не удастся, к сожалению и придётся просто ставить затычки на размер загружаемого файла...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28