public function image_compression($url) { $real_path = $_SERVER['DOCUMENT_ROOT'] . $url; list($width, $height, $type) = getimagesize($real_path); $proportion = $height / $width; $new_width = ($width > 800 ? 800 : $width) * 0.9; $new_height = $new_width * $proportion; switch ($type) { case 1: $is_gif = $this->is_gif($real_path); if ($is_gif) { header('Content-Type:image/gif'); $image_wp = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromgif($real_path); imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagejpeg($image_wp, $real_path, 75); imagedestroy($image_wp); } break; case 2: header('Content-Type:image/jpeg'); $image_wp = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($real_path); imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagejpeg($image_wp, $real_path, 75); imagedestroy($image_wp); break; case 3: header('Content-Type:image/png'); $image_wp = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefrompng($real_path); imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); imagejpeg($image_wp, $real_path, 75); imagedestroy($image_wp); break; } } function is_gif($path) { $fp = fopen($path, 'rb'); $image_head = fread($fp, 1024); fclose($fp); return preg_match("/" . chr(0x21) . chr(0xff) . chr(0x0b) . 'NETSCAPE2.0' . "/", $image_head) ? false : true; }
PHP图片压缩
最新推荐文章于 2024-05-20 20:32:38 发布