PHP - 在浏览器下载之前调整服务器中的图像大小


PHP - Resize image in server before browser downloads it

服务器

中存储了一个文件,例如其尺寸为400 X 600像素。但是在网站的不同部分,我们需要不同维度的相同图片。对于缩略图,我们通常需要 50 X 50 像素,如果我们选择下载具有原始尺寸的相同图片,则花费更长的时间并且页面加载速度会变慢。如果调整该图片的大小,其大小会减小得多(例如,从 500 KB 到 50 KB)。所以,我想要的是,在浏览器下载图片之前,服务器应该按照PHP脚本的要求将图片大小调整为尺寸。

您需要将代码放在缩略图代码中,例如图像.php然后将此脚本用作带有图像文件名,宽度和高度参数的img标签的src。

<img src="http://path-to-directory/image.php?img=abc.jpg&width=50&height=50" />

您需要更改"DSC01088.jpg"以回显 $_GET['img']; 经过适当的验证。

你需要PHP的GD库,然后看看这个和这个,然后链接一个php文件,该文件会调整大小而不是图像本身。

另请注意 neeraj 的建议,因此您可以在上传时调整其大小以获得更好的性能。

如果您的主机缺少PHP GD(这是极不可能的),您应该查看这个或这个。

是的,使用 PHP GD2 扩展名。这是一个快速教程

使用 GD 资源库创建缩略图

首先获取文件夹中所有图像的列表

 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  
         }
     } 
 }

是的,当然!

谷歌 PHP 图像大小调整代码示例

然后创建一个下载脚本并使用参数调用它,如下所示:

http:///www.mysite.com/image.php?image=path/to/my/image.png&width=50&height=50&crop=1

该脚本将加载图像,将其调整为提供的宽度和高度,并选择性地裁剪它,然后使用适当的标题回显以供下载......

有很多方法可以做到这一点...有时最好在 SE 这里询问之前使用谷歌......