PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: статья по масштабированию картинок
Troy
Отправлено: 20 Ноября, 2006 - 09:03:31
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Нояб. 2006  


Помог: 0 раз(а)




Очень хорошая статья, спасиба.
Вопрос такой - долго отрисовываються картинки - это проблема хостера?
 
 Top
f0rm4t
Отправлено: 20 Ноября, 2006 - 16:20:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006  


Помог: -1 раз(а)




Попробуй засечь время генерации скрипта. По оценке которого и поймешь в чем причина.
 
 Top
Архей
Отправлено: 27 Декабря, 2006 - 12:05:45
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Дек. 2006  


Помог: 0 раз(а)




Всем привет, статья хорошая, ничего сказать не могу, ном огу сказать пару слов в общем об этом методе.

Многие, а точнее практически все сталнулись или столкнуться с проблемой обработки больших изображений, тоесть закачав фотку размером 2500 на 2500 размером 1 Мег. Вы уже врядли сможете обработать фото таким вот макаром, если вы зайдете в Лог ошибок вы увидете критическую ошибку о нехватке виртуальной памяти выделенной на работоспособность скрипт. И на сколько я знаю, данная проблема не решается на библиотеках GD. Если кто-то знает метод решения, просьба отписаться. Я нашел решение в других библиотеках. Данная трабка касается Хостингов и никак Локальнонастроенных систем у себя на компе.
 
 Top
maksmib
Отправлено: 25 Ноября, 2010 - 18:07:58
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Вечер добрый господа товарищи! Улыбка
Спасибо за статью, но возник ряд вопросов т.к. "завести" не получилось.

Итак, сам скрипт я немного переделал под свои нужды, теперь он выгляди так
файл resize.php:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /* f - имя файла
  3.    q - качество сжатия
  4.    src - исходное изображение
  5.    dest - результирующее изображение
  6.    w - ширниа изображения
  7.    ratio - коэффициент пропорциональности */
  8.  
  9. // тип преобразования, если не указаны размеры
  10. $w = 218; // пропорциональная шириной 218
  11.  
  12. // качество jpeg по умолчанию
  13. if (!isset($q)) $q = 100;
  14.  
  15. // создаём исходное изображение на основе исходного файла и опеределяем его размеры
  16. $src = imagecreatefromjpeg($f);
  17. $w_src = imagesx($src);
  18. $h_src = imagesy($src);
  19.  
  20. header("Content-type: image/jpeg");
  21.  
  22. // если размер исходного изображения отличается от требуемого размера
  23. if ($w_src != $w)
  24. {
  25.         // вычисление пропорций
  26.     $ratio = $w_src/$w;
  27.     $w_dest = round($w_src/$ratio);
  28.     $h_dest = round($h_src/$ratio);
  29.  
  30.     // создаём пустую картинку
  31.     // важно именно truecolor!, иначе будем иметь 8-битный результат
  32.     $dest = imagecreatetruecolor($w_dest,$h_dest);
  33.     imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
  34. }
  35.        
  36. // вывод картинки и очистка памяти
  37. imagejpeg($dest,'',$q);
  38. imagedestroy($dest);
  39. imagedestroy($src);
  40.  
  41. ?>


Использую так, чтобы просто проверить
файл gallery.php:

PHP:
скопировать код в буфер обмена
  1. ...
  2. include('resize.php');
  3. ...
  4. echo '<img src="resize.php?f=test.jpg" />';
  5. ...


В результате изображение не появляется, а получаю кучу варнингов (они там в принципе один из другого вытекают):
    1. Warning: imagesx(): supplied argument is not a valid Image resource in /var/www/virtual/mysite.com/htdo cs/resize.php on line 17
    2. Warning: imagesy(): supplied argument is not a valid Image resource in /var/www/virtual/mysite.com/htdo cs/resize.php on line 18
    3. Warning: Cannot modify header information - headers already sent by (output started at /var/www/virtual/mysite.com/htdocs/resize.php:16) in /var/www/virtual/mysite.com/htdo cs/resize.php on line 20
    ...


Для проверки я пробовал во время работы скрипта вывести содержимое переменной $f - она оказалась пустой. Не понял Почему не понятно.
2й пункт вытекает из первого, а вот почему 3й варнинг появляется, также не понятно.

Подскажите пожалуйста, что не так?

(Отредактировано автором: 25 Ноября, 2010 - 18:08:19)

 
 Top
Мелкий Супермодератор
Отправлено: 25 Ноября, 2010 - 19:53:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 11888
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 614 раз(а)




resize.php инклюдить не надо.


-----
PostgreSQL DBA
 
 Top
maksmib
Отправлено: 25 Ноября, 2010 - 22:27:10
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Да действительно, спасибо. Но ничего не изменилось, изображения нет.

(Добавление)

Блин Нахмурился ...тупая ошибка! Ниндзя
что то я переработался и кумекалка не сработала, что параметр "f" скрипту как передается??! Правильно, в статье забыли добавить:

PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['f']))
  2.    $f = $_GET['f'];

(Отредактировано автором: 25 Ноября, 2010 - 22:32:48)

 
 Top
Мелкий Супермодератор
Отправлено: 25 Ноября, 2010 - 22:33:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 11888
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 614 раз(а)




Запросите напрямую resize.php?f=test.jpg. Тут либо ошибка вываливается (отсылку заголовка отключите, должен сразу идти бинарный код) либо/и так - imagejpeg($dest,'',$q); - нельзя, только imagejpeg($dest).

и правда, не заметил, что параметр не получается в скрипте Закатив глазки

(Отредактировано автором: 25 Ноября, 2010 - 22:35:54)



-----
PostgreSQL DBA
 
 Top
maksmib
Отправлено: 26 Ноября, 2010 - 07:57:01
Post Id



Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Угу, я так и проверил, что и позволило понять ошибку.
Еще раз спасибо за наводку Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Обсуждение статей »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB