您的位置:首页 > 编程语言 > PHP开发

PHP图片压缩的方法

2016-02-04 17:03 621 查看
项目里要求上传图片并进行缩放、压缩质量保存到服务器。

起初用php的image函数,结果jpg格式的图片保存正常,png格式的图片保存到服务器后损坏,大小变为0,方法如下:

if ($imageType == '.jpg') {
$src = @imagecreatefromjpeg ($url_tmp);
list($width,$height) = getimagesize($url_tmp);
$newwidth = 500;
$newheight = ($height/$width)*500;
$tmp = imagecreatetruecolor($newwidth,$newheight);
imagecopyresized($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
$output = imagejpeg($tmp, $url_tmp, 50);
imagedestroy($tmp);
} elseif ($imageType == '.jpg') {
$src = @imagecreatefrompng ($url_tmp);
list($width,$height) = getimagesize($url_tmp);
$newwidth = 500;
$newheight = ($height/$width)*500;
$tmp = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
$output = imagepng($tmp, $url_tmp, 50);//此行输出也为1,但保存到服务器就损坏了;后来发现对png图片用imagejpeg也能保存成功为png图片且未损坏。
imagedestroy($tmp);
}
if (!$output) {
echo '图片压缩失败';
}

后来更改方法,引入了ThinkImage图片处理库,解决了jpg和png图片压缩、压质的问题,具体见下面链接:

http://www.thinkphp.cn/extend/291.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PHP