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