思路:将图片先上传到服务器,然后再进行图片压缩
下面提供两种方案:
方案一:使用GD类库,这个默认不支持JPG,需要额外安装,自己检查。(优点不用安装扩展,但处理gif动图无法处理,压缩完就变成静态图片;)
方案二:使用Imagick扩展(优点:可以处理gif动图,缺点需要安装扩展,建议还是这种的,Imagick更加强大。扩展链接:https://pecl.php.net/package/imagick)
方案一代码:
// 压缩图片
public function resizeImage($file_path, $maxwidth = 480, $maxheight = 480, $name = '')
{
try {
if (!file_exists($file_path)) {
return false;
}
$info = pathinfo($file_path);
$dirname = $info['dirname'];
$ext = strtolower($info['extension']);
if ($name) {
$filname = $dirname. '/'. $name.'.' . $info['extension'];
} else {
$filname = $dirname. '/'. $info['filename'] . 's.' . $info['extension'];
}
try {
if($ext == "jpeg"||$ext == "jpg" )
{
$im = imagecreatefromjpeg($file_path);