Нужна помощь по сценарию PHP аватара - PullRequest
1 голос
/ 12 ноября 2009

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

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

Вот код ниже:

<?php

list($width, $height) = getimagesize("images/pic.jpg");

if ($width >= 180){
    $width = 180;
    echo '<img src="images/pic.jpg" width="' .$width. '" />';
} else {
    echo '<img src="images/pic.jpg" width="' .$width. '" height="' .height. '" />';
}

?>

Ответы [ 5 ]

0 голосов
/ 12 ноября 2009

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

РЕДАКТИРОВАТЬ: Примеры из документов PHP (imagecopyresized()) должны дать вам представление. Затем вы можете просто сохранить изображение с измененным размером в качестве имени пользователя / идентификатора пользователя и обслуживать <img src="images/resized/' . USER-ID-OR-NAME-GOES-HERE . '.jpg" alt="Avatar for USERNAME" />, зная, что изображение существует (учитывая, что пользователь действителен).

0 голосов
/ 12 ноября 2009

Так как похоже, что вы все равно ограничиваете своих пользователей шириной изображения 180px, я бы изменил размер картинки при загрузке. Тогда вы можете сохранить «миниатюрную» версию для быстрого отображения и показывать «полную» версию только в том случае, если кто-то посещает профиль пользователя.

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

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

0 голосов
/ 12 ноября 2009

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

Надеюсь, это поможет, David

0 голосов
/ 12 ноября 2009

Я бы изменил размер и переписал загруженный файл аватара до 180x ... или ... x180 PNG-изображения с GD заранее.

0 голосов
/ 12 ноября 2009

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

ОБНОВЛЕНИЕ: Вы можете создавать миниатюры, используя phpthumb . Убедитесь, что у вас установлен GD, поскольку он является зависимостью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...