Какова лучшая практика для сжатия изображений - PullRequest
0 голосов
/ 11 июня 2018

Я получаю контроль над веб-сайтом, и мне нужно позаботиться о процессе сжатия изображения.

Прямо сейчас, при загрузке изображения, оно сохраняется на сервере с высоким качеством и когда веб-сайт работаеткэшируется, изображение сжимается для кеша.Таким образом, кэш содержит сжатую копию изображения, в то время как исходное высококачественное изображение все еще хранится на сервере.Инструмент, который отвечает за то, что я только что описал, был разработан нынешним владельцем веб-сайта, и, поскольку я не получаю этот инструмент, мне понадобится еще один.В настоящее время сайт использует Pydio, и я не видел там ни одной опции сжатия.

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

Я подумал о некоторых опциях:

  1. Сохраняйте это так, как сейчас, то естьсохраните исходное изображение на сервере и при кэшировании сожмите его для кеширования (наилучшая совместимость с веб-сайтом, поскольку именно это делает инструмент, используемый в настоящее время).
  2. Сжатие всех изображений в момент их загрузки ипоэтому у меня будут только сжатые образы на сервере, и я буду использовать их для кэширования (сэкономьте место на диске, но не знаете, как объединить его с Pydio).
  3. У меня есть cron, который будет сжимать всеизображения, которые еще не сжаты (дает мне возможность свободно загружать изображения, не беспокоясь об их сжатии, хотяизображения не будут сразу сжаты).
  4. Загрузите изображение на веб-сайт, который сжимает изображение, а затем берет полученное изображение и загружает его (действительно, звучит глупо и много возится, чтобы загрузить изображение) ..

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

Плюс, если вы знаете какой-либо инструмент, у которого есть API для него или что-то еще, я буду рад услышать об этом.

Сайт построен с использованием PHP.

1 Ответ

0 голосов
/ 25 июня 2018

Поскольку вопрос, который вы задаете, относится к общему подходу, я поставлю свои два цента.

На ваших подходах:

Вариант 4 - Вы можете использовать некоторые в автономном режимепрограммное обеспечение или внешний сайт для сжатия, но это кажется утомительной работой.Если бы мне нужно было загружать одно изображение в день, я бы, вероятно, выбрал эту опцию.

Вариант 2 - я бы предпочел не делать сжатие при загрузке, поскольку вы потеряете исходное изображение.Сжатие изображений может очень сильно испортить некоторые изображения.

Что касается вариантов 1 и 3 - я думаю, что это зависит от ресурсов вашего сервера, количества изображений, трафика вашего сайта и т. Д. Обычно я предпочитаю сжатие /кэширование по запросу, а не загрузка, но для небольшого сайта это не должно иметь большого значения.

Что касается API - обычно у вас есть два варианта: выполнить работу на своем сервере / сайте или использоватьвнешний сервис.

Когда речь идет о сервисах, мы используем CloudImage , у него очень простой API, и он очень помогает в процессе сжатия (и изменения размера, если вам это нужно).Кроме того, у вас есть преимущества CDN, которые повысят производительность.Поскольку вы используете Pydio, я предполагаю, что вам нужна защита данных и конфиденциальность, поэтому CloudImage может быть хорошим вариантом для вас, поскольку они действительно серьезно относятся к вопросам конфиденциальности.

Если вы предпочитаете делать это самостоятельно, и с учетом этогоВы используете PHP, я бы порекомендовал ImageMagick и библиотеку PHP IMagick .Вы можете контролировать каждый параметр сжатия, и документация довольно хорошая.Единственным недостатком является то, что для достижения наилучшего сжатия без потери качества сначала нужно немного проб и ошибок.

Удачи!

...