Задать вопрос
@Alk90
php, mysql, jquery, css, html, api

Как получать размеры уменьшенных изображений?

Всем привет! Появилась необходимость отдавать через API размеры изображений.
Все изображения хранятся хранятся в разном формате, загружать на сервер можно тоже разные размеры.
для изображений создана таблица в БД images, где хранится информация об оригинале картинки. Ссылки на уменьшенные копии генерируются в php.
Например, к посту привязано 2 картинки, значит в БД мы найдем 2 записи (id, name, post_id, width, height)
Скрипт php знает как сгенерировать ссылку на оригинал и на уменьшенные копии по полю name, размер оригинала так же хранится рядом. Но как быть с уменьшенными копиями?
У меня получился такой выход...
Так как скрипт знает как обрезать и уменьшать изображения при загрузке - он должен использовать эти же данные при отдаче уменьшенных копий. А это значит, что если получен оригинал размером 600x400, то зная, что при загрузке создавалось изображение размером 300x200 и 100x100, мы так же даем ссылки на них и указываем эти же размеры.
Правильный ли это подход?
Мне кажется он сделан на коленке... Ведь если я поменяю через год размер для загружаемых картинок, то для старых эти размеры уже не будут соответствовать реальным.
С другой стороны, если при каждом получении данных, проверять размер всех картинок и всех уменьшенных копий функцией getimagesize, получится слишком ресурсоемко. Ведь на странице может быть до нескольких сотен изображений помноженное на количество размеров. Итого порядка 2-3 тысяч выполнений функции getimagesize
  • Вопрос задан
  • 99 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 2
@grinat
С другой стороны, если при каждом получении данных, проверять размер всех картинок и всех уменьшенных копий функцией getimagesize, получится слишком ресурсоемко. Ведь на странице может быть до нескольких сотен изображений помноженное на количество размеров. Итого порядка 2-3 тысяч выполнений функции getimagesize

Шо мешает их кэшировать? Нет на диске тумбы - сгенерил, есть - вернул.
Ответ написан
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
тыц и нет ресайза
Ответ написан
Ваш ответ на вопрос

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

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