php图片压缩
作者:xlnxin发布时间:2023-08-05分类:其他教程浏览:342
导读:/** * desription 压缩图片 * @param string $imgsrc ...
/** * desription 压缩图片 * @param string $imgsrc 图片路径 * @param string $imgdst 压缩后保存路径,从项目根目录开始的路径(为空则输出图片) */ function compressedImage($imgsrc, $imgdst) { list($width, $height, $type) = getimagesize($imgsrc); $new_width = $width > 800 ? 800 : $width; //图片宽度的限制 $new_height = $height > 800 ? ceil($height * 800 / $width) : $height; //自适应匹配图片高度 switch ($type) { case 1: #先判断是否为gif动画 $fp = fopen($imgsrc, 'rb'); $image_head = fread($fp, 1024); fclose($fp); $giftype = preg_match("/" . chr(0x21) . chr(0xff) . chr(0x0b) . 'NETSCAPE2.0' . "/", $image_head) ? false : true; if ($giftype) { header('Content-Type:image/gif'); $image_wp = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromgif($imgsrc); imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); //90代表的是质量、压缩图片容量大小 imagejpeg($image_wp, $imgdst, 90); imagedestroy($image_wp); imagedestroy($image); } break; case 2: header('Content-Type:image/jpeg'); $image_wp = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($imgsrc); imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); //90代表的是质量、压缩图片容量大小 imagejpeg($image_wp, $imgdst, 90); imagedestroy($image_wp); imagedestroy($image); break; case 3: header('Content-Type:image/png'); $image_wp = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefrompng($imgsrc); imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); //90代表的是质量、压缩图片容量大小 imagejpeg($image_wp, $imgdst, 90); imagedestroy($image_wp); imagedestroy($image); break; } }
- 上一篇:微信小程序--canvas画布实现图片的编辑
- 下一篇:php裁剪透明圆形头像
- 其他教程排行
- 最近发表