Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ресайз изображений на ходу или на месте? 
:(
    Опции темы
Xplod
Дата 6.1.2012, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Здравствуйте! 

Встала дилема, на крупном проекте при загрузке изображения должны нарезаться не сколько видов тумб, есть вероятность 
что в последствии нужны будут еще размеры, что ставит в тупик саму идею ресайза на месте. Знаю многие используют более 
удобный вариант, загружают оригинал и при генерации контента в теге img делаю примерно так: 

Код

<img src="<?=Img::resize(путь до оригинала, ширина Х высота, путь после ресайза)?>" alt="" />


При вызове метода сначала проверяем на наличие уже сгенеренного изображения file_exists(), вполне рабочий 
вариант на первый взгляд. Но интересует другой вопрос, как сильно на производительность скажется постоянная 
проверка файла? Возможно есть более интересные решения и я просто об этом не знаю. 

Спасибо!
PM MAIL   Вверх
s0lman
Дата 6.1.2012, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



Если нужны будут тамбы другого размера - что мешает потом их добавить?

Ресайз картинки на лету... пожалейте сервер  smile 


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
Xplod
Дата 6.1.2012, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



ну в самой идее резать на лету как раз ничего криминального, мы же не при каждом обращении будем резать, а только один раз, а остальные просто будем проверять нарезно или нет, смущает другое, это проверка file_exists(). тоесть постоянное обращение к файловой системе, что само по сути скорей всего не желательно.

s0lman: а насчет потом добавить, это надо запускать скрипт нарезки. ну что собственно тоже усложняет. в ручную пересохранять при большом объеме документов, не приемлимо.
PM MAIL   Вверх
ksnk
Дата 6.1.2012, 13:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Xplod, а почему бы не сделать нормальное имя файла.
К примеру 
/img/picture_800x600.jpg
/img/picture_100x80.jpg

если файла нет - htaccess переводит нас на php-ресайзилку, которая берет оригинальный файл picture.jpg, режет его на нужный размер, сохраняет под нужным именем и выдает наружу. Следующее обращение пойдет уже по существующему файлу, в обход php.

пара строк htaccess всего и делов...

Добавлено через 59 секунд
Цитата(Xplod @  6.1.2012,  13:28 Найти цитируемый пост)
 мы же не при каждом обращении будем резать, а только один раз

Я как-то на таких принципах галерею мастерил  smile Первый просмотр не всегда удавалось дождаться...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Xplod
Дата 6.1.2012, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Цитата(ksnk @  6.1.2012,  13:48 Найти цитируемый пост)
Первый просмотр не всегда удавалось дождаться


 smile  да тут вы правы.


Цитата(ksnk @  6.1.2012,  13:48 Найти цитируемый пост)
пара строк htaccess всего и делов...


Согласен, НО отсюда вытекают и другие проблемы, например потенциальная уязвимость, поясню, 
если мы пропишем в htaccess обрабатывать все изображения без указания точного размера, как например: 

Код

RewriteRule ^img_([0-9]+)x([0-9]+).([a-z]+)+$ resize.php?w=$1&h=$2&e=$3 [L]


то любой злоумышленик может сделать примерно так:

Код

for($i=0; $i<1000000; $i++){
   file_get_contents('http://mysite/img_'.$i.'x'.$i.'.jpg');
}


ну думаю вы поняли что произойдет...)))

Остается прописывать каждый размер, в htaccess, что тоже не лучший вариант.
PM MAIL   Вверх
ksnk
Дата 6.1.2012, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(Xplod @  6.1.2012,  14:23 Найти цитируемый пост)
ну думаю вы поняли что произойдет...)))

Можно ограничиться стандартными размерами. К примеру, по высоте достаточно 800,600, 120,100 в зависимости от горизонтального или вертикального кадра. По ширине - еще + 1000. Так что злоумышленник не сильно надосится таким образом... 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
$дмитрий
Дата 6.1.2012, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Правильнее всего конечно ресайзить картинку в момент добавлении/изменении, но не всегда это возможно(в силу текущей архитектуры или других причин), а иногда просто не удобно. В таких случаях результат КЭШИРУЮТ smile
И еще момент: если картинок много не нужно все превьюхи пихать в одну папку, это не хорошо
PM MAIL   Вверх
ksnk
Дата 6.1.2012, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата($дмитрий @  6.1.2012,  20:16 Найти цитируемый пост)
а иногда просто не удобно. В таких случаях результат КЭШИРУЮТ

Юзер по ftp залил кучку картинок. В какой момент их нужно кэшировать, если неясно, покажутся они когда-нибудь или нет?  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
$дмитрий
Дата 6.1.2012, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Цитата

Юзер по ftp залил кучку картинок.

При чем тут способ доставки файла, если ты не можешь контролировать этот процесс - файл просто не отобразиться smile

Вариант с htaccess мне не нравится тем, что нельзя будет распределить нагрузку, в случаи если на странице будет много файлов
PM MAIL   Вверх
ksnk
Дата 6.1.2012, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата($дмитрий @  6.1.2012,  21:40 Найти цитируемый пост)
 если ты не можешь контролировать этот процесс - файл просто не отобразиться

Есть еще и активные шаблоны, которые могут просканировать каталог и набросать галерею.
Цитата($дмитрий @  6.1.2012,  21:40 Найти цитируемый пост)
Вариант с htaccess мне не нравится тем, что нельзя будет распределить нагрузку, в случаи если на странице будет много файлов

При чем тут распределение нагрузки? htaccess срабатывает ровно один раз в жизни для каждой миниатюры. Дальнейшее распределение нагрузки головная боль web сервера, а не web программиста  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
$дмитрий
Дата 6.1.2012, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



Цитата

которые могут просканировать каталог и набросать галерею

Вот, значит есть некий обработчик, который может сразу(либо при заходе на страницу) проресайзить картинку + переиндексировать кеш

Твой вариант с htaccess накроется медным тазом если размер картинки заранее не известен. Например при оформлении иллюстраций к статьям/новостям  smile 
PM MAIL   Вверх
Sanchezzz
  Дата 7.1.2012, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



В новостном портале города пока что по скромным подсчет 1к польз. в стуки делал программист занятым разделом новости  в админке он сделал чтобы фото загружалось мултиаплодером выбирались какие нужны ресайзились  сразу на 5 форматов 800 600 380 280 180 в зависимости от размеров фото и заданным параметрам.
фото при подаче к анонсу пихается в background и позиционируется 

В другом двиге над котором я работаю и бывает еще 1 программист я сделал редактор фоток обрезка загрузка мулти загрузка написал гребаныq плагин для tynimce для закачки фоток и работы с картинками а также файловый менаджер 
чтобы всеэто выбирать могли и вставлять в контент 
к сожалению чтобы это работало как отдельный плагин нужно разобрать движок и написать бекенд независимым от ядра системы.

Это сообщение отредактировал(а) Sanchezzz - 7.1.2012, 12:53


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Nigel
Дата 8.1.2012, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



Sanchezzz, можешь демку выложить? Ну или скриншоты, чтобы понять, как это выглядит/работает
PM MAIL   Вверх
Xplod
Дата 9.1.2012, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 27.6.2007

Репутация: 1
Всего: 1



Sanchezzz надо изображения в прикреплять в документу, а не в тело... но это ладно я думаю надо просто по аналогии друпала сделать, написать модуль для заведения размеров изображения, а потом их прикреплять к нужным модулям, новости..статьи и так далее, при сохранении размеров просто запускать перегенерацию...
PM MAIL   Вверх
Absinthe
Дата 9.1.2012, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Картинки ресайзить при аплоаде.
Потом при необходимости добавления нового размера ресайзить с консоли.

С видео ситуация другая. Видео обрабатывать отдельным демоном.
PM MAIL   Вверх
Sanchezzz
Дата 9.1.2012, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



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

1
user posted image

2
user posted image

3
user posted image

4
user posted image

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




Это сообщение отредактировал(а) Sanchezzz - 9.1.2012, 10:40


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Sanchezzz
Дата 9.1.2012, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



на скрине: 
1 видно как все редактируется и добавляется . Элемент может быть разделом и элементом одновременно )
2 это структура контейнера дерева для одного блока где хранятся элементы.
3 это простая работа с картинками редактирование
4 загрузка фоток в элемент 1 кадр обычная загрузка 2 кадр мултиуплодер  с возможностью добавлять wotermark.  + контролер UI Jquery чтобы легче всем было управлять удалить картинку из временной папки , поставить водиной знак итд. 

Для мултиуплодера использовался jquery плагин qqFileUploader

Для для кропа использовался imgareaselect





--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
ksnk
Дата 9.1.2012, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Sanchezzz, Раз все картинки грузятся админкой и никак иначе, то и ресайзить их надо в ней-же.

Вообще говоря, не очень важно, какого размера будут картинки на страничке. Нужно выделить стандартные , например 800x600, 200x120, 100x80 и ресайзить всегда до них. Если пользователь заряжает длину картинки в 400px - можно подсунуть ему 800x600 и указать длину в теге img. Так как юзер в пароксизме редактирования макета может менять размер картинок в элементе  неограниченное количество раз, каждый раз рассматривая продукт, ресайзить каждый раз может оказаться вредно для здоровья сервера  smile 




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Sanchezzz
Дата 9.1.2012, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



ksnk так и сделано ресайзится сразу админкой вовремя закачки значения для ресайза задаются самим
мини детально и сохраняется исходное.

Больше 25-30 картинок я не замечал чтобы создавали для 1 элемента ) 


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
$дмитрий
Дата 9.1.2012, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 17
Всего: 45



При загрузке главное не забывать ресайзить оригинальную картинку до предельно-допустимых размеров, а то загружают по 3-4 метра

Добавлено через 2 минуты и 58 секунд
Да и вообще картинку лучше предварительно сжимать на клиенте  smile 
PM MAIL   Вверх
Absinthe
Дата 9.1.2012, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Цитата

Да и вообще картинку лучше предварительно сжимать на клиенте 
В таком случае надо обязательно оставлять стандартный вариант.
PM MAIL   Вверх
Sanchezzz
Дата 9.1.2012, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



$дмитрий не поверите но такие дебилы встречаются грузят фото по 10000px картику мы картинку пытаемся загрузить а она не сжимается после просмотра какую вы картинку хотите загрузить, я понял это плокатище )
а вообще нужно ужесточить меры по загрузке картинок не более 800кб и 1024px 1024px


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Nigel
Дата 10.1.2012, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 20.11.2007

Репутация: 7
Всего: 19



Sanchezzz, спасибо, примерно так и представлял ;)
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1253 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.