如何將本地的圖片透過 php 壓縮?

发布于 2022-09-07 23:24:24 字数 205 浏览 29 评论 0

我想問一下,
如何將本地的圖片透過 php 壓縮?
假設我有個資料夾裡面都是圖片
但我如何能夠透過 php 將每個圖片進行壓縮,不改變圖片名稱?
我會做壓縮但是只限於有「上傳」行為...
本地將某文件夾整批壓縮我還真不知道怎麼做
有沒有大神懂這思路?

無論是副檔名或圖片名稱都不變動
唯一變動的只會是 size
這。。。有可能嗎?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

回眸一遍 2022-09-14 23:24:24

大致思路如下(我这个是之前做的压缩本地图片的),其实就是运用php的GD库

<?php
set_time_limit(0);
$p = getDir('code/');
 
foreach($p as $val){
        //$file = "images/3.jpg";
        //header("Content-type: image/jpeg");
        $file_type = substr(strrchr($val,"."),1);
        if ($file_type == 'jpg' || $file_type == 'png' || $file_type == 'gif') {
                $percent = 1;  //图片压缩比
                list($width, $height, $type) = getimagesize($val); //获取原图尺寸
                //缩放尺寸
                $newwidth = $width * $percent;
                $newheight = $height * $percent;
                switch($type){ 
                        case 1:
                                $src_im = imagecreatefromgif($val);
                                break;
                        case 2:
                                $src_im = imagecreatefromjpeg($val);
                                break;
                        case 3:
                                $src_im = imagecreatefrompng($val);
                                break;
                        default:
                                break;
                }
                $dst_im = imagecreatetruecolor($newwidth, $newheight);
                imagecopyresized($dst_im, $src_im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
                imagejpeg($dst_im,$val); //输出压缩后的图片
                imagedestroy($dst_im);
                imagedestroy($src_im);
        }
}
echo '压缩完成!';
 
 
function searchDir($path,&$data){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read()){
if($file!='.'&& $file!='..'){
searchDir($path.'/'.$file,$data);
}
}
$dp->close();
}
if(is_file($path)){
$data[]=$path;
}
}
 
 
function getDir($dir){
$data=array();
searchDir($dir,$data);
return   $data;
}
 
 
?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文