2017-02-17 14 views
0

Я разрабатываю IPS 4. У меня есть профиль всплывающее окно:PHP Копир.изобр API

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

Это хорошая идея, чтобы сделать загрузку крышки быстрее?

+2

Это хорошая идея в целом. Но не делайте этого каждый раз, когда страница загружается. Это можно сделать отдельно от вашего веб-сайта, в фоновом режиме. А затем используйте только измененные размеры. Это имеет какое-то значение для вас? –

+0

Как сказал Игорь Т., да, это ускорит страницу. Но сохраните измененное изображение, поэтому вам не нужно изменять его размер с каждым запросом. Кроме того, добавьте Etag или заголовки кеша, чтобы изображение было также кэшем клиентом. – Jerodev

+0

Предлагаю просмотреть PHP [ImageMagick] (http://php.net/manual/en/imagick.resizeimage.php) или [GD] (http://php.net/manual/en/book.image.php) для работы с изображениями и изменения размера изображений профиля при хранении на сервере не во время загрузки. –

ответ

0

Вам необходимо заполнить поле 436x85 фотографиями, предоставленными пользователем.

Моя собственная цифровая камера оснащена 18-мегапиксельным датчиком, который производит 4896x3672 снимки, которые используются при сжатии в формате JPEG. Представьте, что вы показываете, например. дюжину профилей на страницу. Это 84 мегабайт сетевой передачи (больше, чем обычный MP3-кодированный музыкальный альбом) для одной страницы. Сжатие JPEG примерно соответствует соотношению 1/10, поэтому вы можете принять 840 МБ ОЗУ только для хранения изображений. И у вас есть накладные расходы на то, чтобы в браузере отображалось изображение в реальном времени.

В других размерах JPEG размером 436x85 может в среднем использовать от 8 до 22 КБ (в зависимости от настроек качества).

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

Вывод: всегда меняйте размеры самостоятельно. И, пожалуйста, сделайте это только один раз, это тяжелый процесс даже для вашего сервера.

0

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

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