이미지 압축은 일상적인 개발에서 자주 사용되는 작업입니다. 오늘날 요구 사항이 많은 상황에서는 업로드된 이미지를 다른 비율의 이미지로 압축하는 것도 매번 작업하는 것이 매우 번거롭기 때문에 수행했습니다. 이는 이미지 압축을 위한 작업 클래스를 캡슐화합니다. 이 클래스를 만난 후에는 더 이상 이미지를 압축하기 위해 많은 코드를 작성하는 것에 대해 걱정할 필요가 없기를 바랍니다.
이미지 압축 도구:
<?php /** 图片压缩操作类 v1.0 */ class Image{ private $src; private $imageinfo; private $image; public $percent = 0.1; public function __construct($src){ $this->src = $src; } /** 打开图片 */ public function openImage(){ list($width, $height, $type, $attr) = getimagesize($this->src); $this->imageinfo = array( 'width'=>$width, 'height'=>$height, 'type'=>image_type_to_extension($type,false), 'attr'=>$attr ); $fun = "imagecreatefrom".$this->imageinfo['type']; $this->image = $fun($this->src); } /** 操作图片 */ public function thumpImage(){ $new_width = $this->imageinfo['width'] * $this->percent; $new_height = $this->imageinfo['height'] * $this->percent; $image_thump = imagecreatetruecolor($new_width,$new_height); //将原图复制带图片载体上面,并且按照一定比例压缩,极大的保持了清晰度 imagecopyresampled($image_thump,$this->image,0,0,0,0,$new_width,$new_height,$this->imageinfo['width'],$this->imageinfo['height']); imagedestroy($this->image); $this->image = $image_thump; } /** 输出图片 */ public function showImage(){ header('Content-Type: image/'.$this->imageinfo['type']); $funcs = "image".$this->imageinfo['type']; $funcs($this->image); } /** 保存图片到硬盘 */ public function saveImage($name){ $funcs = "image".$this->imageinfo['type']; $funcs($this->image,$name.'.'.$this->imageinfo['type']); } /** 销毁图片 */ public function __destruct(){ imagedestroy($this->image); } } ?>
테스트:
<?php require 'image.class.php'; $src = "001.jpg"; $image = new Image($src); $image->percent = 0.2; $image->openImage(); $image->thumpImage(); $image->showImage(); $image->saveImage(md5("aa123")); ?>
결과:
PHP 관련 지식을 더 보려면 PHP 튜토리얼을 방문하세요!
위 내용은 PHP는 특정 비율로 이미지를 압축합니다(명확성 유지).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!