Задать вопрос
@MVP_Master

Как организовать групповое изменение размеров фото на сайте?

На сайте сейчас только полного размера фотки разных форматов.

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

принято решение создавать копии картинок для превьюх и хранить их в подпапке где указаны размеры, например,
products/
10001/
product.png
100х100
product.png
200x200
product.png

Вопрос:

одно и тоже имя оставлять в папках, соответствующих каждому размеру? или добавлять постфикс к имени в виде
ИмяФайла.'100x100'.',png' ?

Или как лучше?

И может быть в webp конвертить каждый рисунок?
  • Вопрос задан
  • 49 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
одно и тоже имя оставлять в папках, соответствующих каждому размеру?
Очевидно же что рано или поздно вы перезапишете какую-то фотку, так как такое имя уже будет загружено (типичный пример без имени(1).jpg). И да - для каждого размера своя папка. Кроме того, часто имена фоток бывают на русском языке, с пробелами, в разном регистре, что для веба не очень хорошо. Фото надо переименовывать. Есть 2-3 варианта, которые зависят от условий. Самый простой и очевидный, подходящий для одной фото на объект - имя будет соответствовать идентификатору объекта (товара в вашем случае). Если их больше одной - можно использовать
а) идентификатор + _микротайм после точки,
б) хеш микротайма / идентификатора + _микротайма после точки,
в) просто микротайм
г) любой другой алгоритм, гарантирующий высокую уникальность и совместимость с вебстандартами.

Хранить стандартный вариант в жпег, так же можете добавить вебп, на радость гуглу. Для ог лучше использовать жпег, так как не все соцсети нормально понимают вебп, так же все еще есть проблемы с некоторыми браузерами, например сафари не всегда нормально его понимает.

Для вывода изображений используйте <picture>, в котором задайте приоритеты вывода и размерность.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы