| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Графика > Маштабирование картинки |
| Автор: Elfet 17.2.2005, 21:33 |
| Как можно быстро отмаштабировать картинку до нужных размеров? Насколько это быстро получается? Можно ли маштабировать изображения для каждого показа страницы отдельно если картинок менее 20? или всё же придётся создовать отмаштабированную картинку для каждого из рисунков? |
| Автор: Irokez 17.2.2005, 21:36 |
| http://www.php.net/imagecopyresized |
| Автор: rMaveric 17.2.2005, 21:50 |
| 2 Elfet Как вариант и правда почитай доку, но я долгое время работаю в сфере где приходиться мучаться с постоянным масштабированием графики... Мй вердикт таков. Все зависит от трафика на твем сервере... Если траф большой, то никаких динамических картинок он просто не выдержит. Я сейчас работаю по следующей схеме. 1. Заливаю полное изоброажение без сжатия (или с минимальным) При первой необходимости динамически создаешь его копию в нужных размерах. И сохранаешь где нить об этом данные. Как только понадобилось отдал уже готовую картинку, понадобилось в новом ракурсе пережал и сохранил... Место тратится хорошо, но до определенного момента. И если учесть цену всех остальных составляющих хоста, то понятно что выигруешь очень неплохо. |
| Автор: Elfet 18.2.2005, 16:05 |
| Я всё же не понял почему маштабмровать картинку на сервере каждый раз плохо? разве это маштабирование так сильно нагружает систему? |
| Автор: Mal Hack 18.2.2005, 16:08 |
| Elfet это замедляет работу скрипта, т.к. идет постоянное обращение к файловой системе, плюс само масштабирование тоже времени просит. |
| Автор: rMaveric 18.2.2005, 16:47 |
| 2 Elfet Можно и каждый раз масштабировать... Если конечно к тебе на сайт заходят 2 раза в месяц... И то из этих двух щасливчиком одним обычно оказываешься ты.... На практике же, когда работает серьезный проект у тебя сервер умирает только от одних запросов и с трудом успевает отдавать ХТМЛки... и тогда о динамической генерации картинок лучше не думать.... З.Ы. Генерация картинок и выдача потом готовых экземпларов - это просто метод оптимизации. И не более. |
| Автор: HalkaR 18.2.2005, 17:02 |
| Если не обязтельно сохранять, то можно отмасштабировать банальным ява-скриптом. |
| Автор: InfMag 18.2.2005, 17:12 |
| HalkaR Ты че? Через JS что-ли? Сума сошел? А какой тогда смысл? Трафика будет в два раза больше, будет загружаться вся картинка в полном объеме. И причем будет все смазано, да и юзер скорость не одобрит... |
| Автор: HalkaR 18.2.2005, 17:17 |
| InfMag, я ж сказал, что если картинку не надо сохранять. Например если картинка используется один раз и она не на много больше необходимой, а смазанно не будет. |
| Автор: InfMag 18.2.2005, 17:23 |
| HalkaR Я имею виду, что будут косяки... Покрайней мерее в каком-то браузере точно будут. И картинки должны постоянно юзаться и не по одной. Уже упомянулось. |
| Автор: Elfet 20.2.2005, 22:41 |
| Угу, хорошо, а можно саму функцию маштабирования? плиз! |
| Автор: Mal Hack 20.2.2005, 22:54 |
| http://forum.vingrad.ru/index.php?showtopic=18570&view=findpost&p=124956 |
| Автор: Elfet 21.2.2005, 21:56 |
| угу, спасибо |
| Автор: Mal Hack 21.2.2005, 22:13 |
| Думаю, заменить imagejpeg() на imagegif или imagepng будет достаточно... Ну соответственно imagecreatefromjpeg тоже... Вот с разными форматами не знаю как будет работать... Надо тестить.. Щас к сожалени на это времени нет. Если очень надо могу в среду попробовать. |
| Автор: Elfet 23.2.2005, 20:04 |
| Mal Hack, я щас сам попробую |
| Автор: yUAC 23.2.2005, 20:25 |
| На всякий случай, если Вы еще не поняли: масштабирование картинок ОЧЕНЬ СЕРЬЕЗНО НАГРУЖАЕТ СИСТЕМУ, я не видел еще ни одной библиотеки для ПХП по работе с графикой, которая бы использовала видеокарту для получения уменьшенных копий изображения (а это могло бы очень серьезно уменьшить нагрузку, создаваемую на сервер, хотя качество при этом бы пострадало). Сохранять уменьшенные копии нужно только в JPEG, т.к. другие форматы типа PNG или GIF сжимают без потерь, и зачастую уменьшенная копия картинки весит больше, чем исходная! Это объясняется тем, что при масштабировании очень серьезно изменяется структура картинки, зачастую нарушается и её геометрия, соответственно при работе с сжатием без потерь могут возникнуть очень серьезные проблемы. P.S. В GD2 есть еще одна функция для уменьшения картинки - imagecopyresampled. С её помощью получаются тумбнейлзы намного лучшего качества (идет «умное» сжатие изображения, намного более приятное глазу), но при этом нагрузка возрастает еще в несколько раз. Может быть лет через 10 разницы между этими функциями не будет, но везде, где только это возможно я советую использовать imagecopyresized, т.к. нагрузка на сервер серьезно уменьшается. |
| Автор: aleksey_from_kg 27.12.2006, 14:08 | ||
| Вопрос в тему. У меня есть код масштабирования картинки. На локалке он нормально работает, а вот на сервере что-то работать не хочет. Вот код
В чем может быть проблема. и как ее можно решить? |
| Автор: Mal Hack 27.12.2006, 15:19 |
| aleksey_from_kg, Модератор: один топик один вопрос. Два. Что выдает, ошибки, вывод которых надо включить... |
| Автор: aleksey_from_kg 28.12.2006, 07:49 |
| Mal Hack, Хорошо |