PHP实现压缩文件夹内所有图片的分辨率

代码兼容gif、png、jpg、jpeg格式,若报warning,则可能是原图片本身有损坏

代码如下:

 

<?php

$path = 'D:\phpstudy\WWW\ABC\upload\images';///当前目录
$handle = opendir($path); //当前目录
while (false !== ($file = readdir($handle))) { //遍历该php文件所在目录

    list($filesname,$kzm)=explode(".",$file);//获取扩展名

    if($kzm=="gif" or $kzm=="jpg" or $kzm=="JPG" or $kzm=="png") { //图片过滤

        if (!is_dir('./'.$file)) { //文件夹过滤

//            print_r($file);
            $filename=$file;
            $per=0.8;
            list($width, $height)=getimagesize($filename);
            $n_w=$width*$per;
            $n_h=$height*$per;
            $new=imagecreatetruecolor($n_w, $n_h);

            if ($kzm=='png') {
               $img= imagecreatefrompng($filename);
            }

            if ($kzm=='jpg') {
                $img=imagecreatefromjpeg($filename);
            }

            if ($kzm=='gif') {
                $img=imagecreatefromgif($filename);
            }

            //拷贝部分图像并调整
            imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);
            //图像输出新图片、另存为
            imagejpeg($new, './new/'.$filename);
            imagedestroy($new);
            imagedestroy($img);

//若需测试,可以将下面的break和上面的print_r()开起来,在服务器上刷新后只会显示一张图片
//            break;

        }

    }

}

?>
posted @ 2019-12-17 17:45  远方的异特  阅读(468)  评论(0编辑  收藏  举报