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

时间:2012-06-18 11:12:16

标签: php resize-image

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

5 个答案:

答案 0 :(得分:1)

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

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

如果您的主机缺少PHP GD - 这种情况极不可能 - 您应该查看thisthis

答案 1 :(得分:1)

是的,PHP GD2 extension。这是一个快速tutorial

答案 2 :(得分:1)

您需要将代码放在thumbnail code中的新文件中,例如image.php然后使用此脚本作为img标记的src,其中包含图像文件名,宽度和高度的参数。

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

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

答案 3 :(得分:0)

是的,当然!

Google for PHP图片调整代码samples

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

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

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

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

答案 4 :(得分:0)

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