PHP图片压缩的方法
项目里要求上传图片并进行缩放、压缩质量保存到服务器。
起初用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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
