
如何压缩已上传的服务器中的图片,有没有好用的php页面源码
我的服务器中有大量的已上传图片,体积挺大的,占用了大量的空间,也影响网站速度,我用的是帝国的cms,有没有办法可以在线压缩这些图片的大小而不影响网站浏览?说明了其实就是将...
我的服务器中有大量的已上传图片,体积挺大的,占用了大量的空间,也影响网站速度,我用的是帝国的cms,有没有办法可以在线压缩这些图片的大小而不影响网站浏览?
说明了其实就是将服务器中指定文件夹的图片批量生成等比例缩略图,并自动存到服务器指定的文件夹内,我用的是linux的vps,最好有php的源码,本人是小菜鸟,希望大虾们指导的时候简单易懂点,谢谢 展开
说明了其实就是将服务器中指定文件夹的图片批量生成等比例缩略图,并自动存到服务器指定的文件夹内,我用的是linux的vps,最好有php的源码,本人是小菜鸟,希望大虾们指导的时候简单易懂点,谢谢 展开
4个回答
展开全部
你的服务器是什么系统? 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;
}
}
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然后批量处理
如果你是虚拟主机,你只能下载处理后再覆盖了
你可以到服务器上安装PS然后批量处理
如果你是虚拟主机,你只能下载处理后再覆盖了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
大多数的图片都是jpg格式的,基本上算已经压缩过的.你再压缩也不会有什么效果的.除非是降低图片的分辨率和大小.
我不知道降低图片的分辩率算不算影响网站浏览?(比如图片变小或变模糊了).
我不知道降低图片的分辩率算不算影响网站浏览?(比如图片变小或变模糊了).
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你是独立服务器,可以考虑编译一个叫imagick的软件,具体软件的用法,去网上搜
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询