如何压缩已上传的服务器中的图片,有没有好用的php页面源码

默认分类 未结 1 1581
2023-03-21 21:38
相关标签:
1条回答
  • 2023-03-21 21:51

    你的服务器是什么系统? WINDOWS还是LINUX?WINDOWS的话你可以另外开发一个软件放在服务器上,实时监测是否有新的图片上传上来,有的话你就执行图片的大小尺寸或者图片画质的压缩,当然你的软件也可以通过访问你的PHP程序来完成图片压缩。LINUX系统的话,可以写一个常驻脚本,实时监控你的图片,所以发现图片文件超过指定大小的话,也执行图片大小和尺寸压缩的,当然也能通过调用PHP来执行。以下是一段PHP的图片压缩代码://缩放图片 function mt($srcFile,$dstFile,$max_width=200,$max_height=150,$imgQuality=90){ $data=@getimagesize($srcFile); if($data[0]<=$data[1] and $data[1]>=$max_height){ $height=$max_height; $width=intval($height*$data[0]/$data[1]); } if($data[0]>=$data[1] and $data[0]>=$max_width){ $width=$max_width; $height=intval($width*$data[1]/$data[0]); } if($height>$max_height){ $height=$max_height; $width=intval($height*$data[0]/$data[1]); } if($data[0]<$max_width and $data[1]<$max_height){ $width=$data[0]; $height=$data[1]; } switch($data[2]){ case 1: $im=@imagecreatefromgif($srcFile); break; case 2: $im=@imagecreatefromjpeg($srcFile); break; case 3: $im=@imagecreatefrompng($srcFile); break; } $srcW=@imagesx($im); $srcH=@imagesy($im); $ni=@imagecreatetruecolor($width,$height); @imagecopyresampled($ni,$im,0,0,0,0,$width,$height,$srcW,$srcH); switch($data[2]){ case 'gif':@imagepng($ni,$dstFile, $imgQuality); break; case 'jpeg':@imagejpeg($ni,$dstFile, $imgQuality); break; case 'png':@imagepng($ni,$dstFile, $imgQuality); break; default:@imagejpeg($ni,$dstFile, $imgQuality); break; } }

    很遗憾了,暂时没这样的代码。你可以到服务器上安装PS然后批量处理如果你是虚拟主机,你只能下载处理后再覆盖了

    大多数的图片都是jpg格式的,基本上算已经压缩过的.你再压缩也不会有什么效果的.除非是降低图片的分辨率和大小.我不知道降低图片的分辩率算不算影响网站浏览?(比如图片变小或变模糊了).

    如果你是独立服务器,可以考虑编译一个叫imagick的软件,具体软件的用法,去网上搜

    0 讨论(0)
提交回复