PHP - изменить размер изображения на сервере, прежде чем браузер загрузит его
На сервере хранится файл, который, например, имеет размер 400 х 600 пикселей. Но в разных частях сайтов нам нужна одна и та же картинка разного измерения. Для миниатюры нам обычно требуется 50 х 50 пикселей, и если мы решим загрузить одно и то же изображение с исходным размером, это займет больше времени и загрузка страницы замедлится. Если размер этой картинки будет изменен, ее размер уменьшится (например, от 500 КБ до 50 КБ). Итак, я хочу, чтобы, прежде чем браузер загрузил картинку, сервер должен изменить размер картинки до размеров, требуемых в скрипте PHP.
5 ответов
Вам нужно поместить код в код миниатюры в новом файле, скажем, image.php, а затем использовать этот скрипт в качестве src тега img с параметрами имени файла изображения, ширины и высоты.
<img src="http://path-to-directory/image.php?img=abc.jpg&width=50&height=50" />
Вам нужно изменить "DSC01088.jpg" на echo $_GET['img']; после надлежащей проверки.
Вам понадобится PHP-библиотека GD, затем посмотрите на это и это, а затем свяжите php-файл, который изменяет размер, а не само изображение.
Также обратите внимание на предложение neeraj, чтобы вы могли изменить его размер при загрузке, чтобы повысить производительность.
В случае, если на вашем хосте отсутствует PHP GD - что крайне маловероятно - вам стоит взглянуть на это или это.
Используйте GD Library для создания миниатюр
сначала получить список всех изображений в папке
function thumb()
{
$img_dir_path='images/';
$thumb_dir_path='images/thumbs/';
$img_array=GLOB($img_dit_path.'*.{jpg,jpeg}',GLOB_BRACE);
foreach($img_array as $img)
{
list($path,$file)=explode('/', $img);
list($fileName, $extension)=explode('.',$file);
$thumb-file=$thumb_di_path . $fileName. '-thumb.jpg';
if(file_exists($thumb-file))
{
//do nothing
}
else
{
//create file using GD and set width and height proportionally
// Example $width=$orig_width * 0.1; $height =$orig_height * 0.1
}
}
}
Да, конечно!
Примеры кода изменения размера изображения Google для PHP
Затем создайте скрипт загрузки и вызовите его с параметрами, например:
http:///www.mysite.com/image.php?image=path/to/my/image.png&width=50&height=50&crop=1
Сценарий загрузит изображение, изменит его размер до заданной ширины и высоты и при желании обрежет его, а затем отобразит соответствующие заголовки для загрузки...
Есть много способов сделать это... Иногда лучше использовать Google, прежде чем спрашивать здесь, на SE...