日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php压缩图片大小

發(fā)布時間:2025/3/18 php 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php压缩图片大小 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
<?phprequire_once(dirname(__FILE__).'/imgcompress.class.php');$dir = str_replace("\\", '/', dirname(__FILE__) ).'/image/200/'; $newDir = str_replace("\\", '/', dirname(__FILE__) ).'/newImage/200/';//PHP遍歷文件夾下所有文件 $files=opendir($dir."."); while (false !== ($file = readdir($files))) { if ($file != "." && $file != ".." && is_file($dir.$file)) { $source = $dir.$file;$dst_img = $newDir.$file;$percent = 0.6; #原圖壓縮,不縮放,但體積大大降低 $image = (new imgcompress($source,$percent))->compressImg($dst_img);}} closedir($files);/*** 圖片壓縮類:通過縮放來壓縮。 * 如果要保持源圖比例,把參數(shù)$percent保持為1即可。 * 即使原比例壓縮,也可大幅度縮小。數(shù)碼相機(jī)4M圖片。也可以縮為700KB左右。如果縮小比例,則體積會更小。* * 結(jié)果:可保存、可直接顯示。*/ class imgcompress{private $src;private $image;private $imageinfo;private $percent = 0.5;/*** 圖片壓縮* @param $src 源圖* @param float $percent 壓縮比例*/public function __construct($src, $percent=1){$this->src = $src;$this->percent = $percent;}/** 高清壓縮圖片* @param string $saveName 提供圖片名(可不帶擴(kuò)展名,用源圖擴(kuò)展名)用于保存。或不提供文件名直接顯示*/public function compressImg($saveName=''){$this->_openImage();if(!empty($saveName)) $this->_saveImage($saveName); //保存else $this->_showImage();}/*** 內(nèi)部:打開圖片*/private 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);$this->_thumpImage();}/*** 內(nèi)部:操作圖片*/private function _thumpImage(){$new_width = $this->imageinfo['width'] * $this->percent;$new_height = $this->imageinfo['height'] * $this->percent;$image_thump = imagecreatetruecolor($new_width,$new_height);//將原圖復(fù)制帶圖片載體上面,并且按照一定比例壓縮,極大的保持了清晰度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;}/*** 輸出圖片:保存圖片則用saveImage()*/private function _showImage(){header('Content-Type: image/'.$this->imageinfo['type']);$funcs = "image".$this->imageinfo['type'];$funcs($this->image);}/*** 保存圖片到硬盤:* @param string $dstImgName 1、可指定字符串不帶后綴的名稱,使用源圖擴(kuò)展名 。2、直接指定目標(biāo)圖片名帶擴(kuò)展名。*/private function _saveImage($dstImgName){if(empty($dstImgName)) return false;$allowImgs = ['.jpg', '.jpeg', '.png', '.bmp', '.wbmp','.gif']; //如果目標(biāo)圖片名有后綴就用目標(biāo)圖片擴(kuò)展名 后綴,如果沒有,則用源圖的擴(kuò)展名$dstExt = strrchr($dstImgName ,".");$sourseExt = strrchr($this->src ,".");if(!empty($dstExt)) $dstExt =strtolower($dstExt);if(!empty($sourseExt)) $sourseExt =strtolower($sourseExt);//有指定目標(biāo)名擴(kuò)展名if(!empty($dstExt) && in_array($dstExt,$allowImgs)){$dstName = $dstImgName;}elseif(!empty($sourseExt) && in_array($sourseExt,$allowImgs)){$dstName = $dstImgName.$sourseExt;}else{$dstName = $dstImgName.$this->imageinfo['type'];}$funcs = "image".$this->imageinfo['type'];$funcs($this->image,$dstName);}/*** 銷毀圖片*/public function __destruct(){imagedestroy($this->image);}}

  

轉(zhuǎn)載于:https://www.cnblogs.com/Abner3721/p/9145750.html

總結(jié)

以上是生活随笔為你收集整理的php压缩图片大小的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。