江门制作手机网站,建网站什么框架,做网站只用前端知识可以吗,部门网站管理建设工作汇报php图片压缩可以通过GD库来实现。以下是一个使用GD库进行图片压缩的示例代码#xff1a;
// 原始图片路径
$sourceImage path/to/source/image.jpg;
// 压缩后保存的路径及文件名
$compressedImage path/to/compressed/image.jpg;
// 压缩后的图片质量#xff08;1-100
// 原始图片路径
$sourceImage path/to/source/image.jpg;
// 压缩后保存的路径及文件名
$compressedImage path/to/compressed/image.jpg;
// 压缩后的图片质量1-100100为最高质量
$compressionQuality 80;
// 获取原始图片的信息
$imageInfo getimagesize($sourceImage);
$originalWidth $imageInfo[0];
$originalHeight $imageInfo[1];
// 创建一个空白画布
$compressed imagecreatetruecolor($originalWidth, $originalHeight);
// 根据原始图片的格式创建一个新的图片资源
if ($imageInfo[mime] image/jpeg || $imageInfo[mime] image/pjpeg) {$source imagecreatefromjpeg($sourceImage);
} elseif ($imageInfo[mime] image/png || $imageInfo[mime] image/x-png) {$source imagecreatefrompng($sourceImage);
}// 将原始图片复制到新的画布上并进行压缩
imagecopyresampled($compressed, $source, 0, 0, 0, 0, $originalWidth, $originalHeight, $originalWidth, $originalHeight);// 保存压缩后的图片
imagejpeg($compressed, $compressedImage, $compressionQuality);
// 释放内存
imagedestroy($compressed);
imagedestroy($source);
echo 图片压缩完成;PHP实现图片压缩同时保持清晰度
?php/*** 图片压缩类通过缩放来压缩。* 如果要保持源图比例把参数$percent保持为1即可。* 即使原比例压缩也可大幅度缩小。数码相机4M图片。也可以缩为700KB左右。如果缩小比例则体积会更小。** 结果可保存、可直接显示。*/
class imgcompress{private $src;private $image;private $imageinfo;private $percent 0.5;/*** 图片压缩* param $src 源图* param float $percent 压缩比例*/public function __construct($src, $percent1){$this-src $src;$this-percent $percent;}/** 高清压缩图片* param string $saveName 提供图片名可不带扩展名用源图扩展名用于保存。或不提供文件名直接显示*/public function compressImg($saveName){$this-_openImage();if(!empty($saveName)) $this-_saveImage($saveName); //保存else $this-_showImage();}/*** 内部打开图片*/private function _openImage(){list($width, $height, $type, $attr) getimagesize($this-src);$this-imageinfo array(width$width,height$height,typeimage_type_to_extension($type,false),attr$attr);$fun imagecreatefrom.$this-imageinfo[type];$this-image $fun($this-src);$this-_thumpImage();}/*** 内部操作图片*/private 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;}/*** 输出图片:保存图片则用saveImage()*/private function _showImage(){header(Content-Type: image/.$this-imageinfo[type]);$funcs image.$this-imageinfo[type];$funcs($this-image);}/*** 保存图片到硬盘* param string $dstImgName 1、可指定字符串不带后缀的名称使用源图扩展名 。2、直接指定目标图片名带扩展名。*/private function _saveImage($dstImgName){if(empty($dstImgName)) return false;$allowImgs [.jpg, .jpeg, .png, .bmp, .wbmp,.gif]; //如果目标图片名有后缀就用目标图片扩展名 后缀如果没有则用源图的扩展名$dstExt strrchr($dstImgName ,.);$sourseExt strrchr($this-src ,.);if(!empty($dstExt)) $dstExt strtolower($dstExt);if(!empty($sourseExt)) $sourseExt strtolower($sourseExt);//有指定目标名扩展名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);}
}
$source 123.png;//原图片名称
$dst_img text.png;//压缩后图片的名称
$percent 1; #原图压缩不缩放但体积大大降低
$image (new imgcompress($source,$percent))-compressImg($dst_img);批量压缩 /*** 扫描文件夹* param $path_dir*/
function scan_dir($path_dir){if (!is_dir($path_dir)) return false;$rs scandir($path_dir);foreach ($rs as $k $v){if ($v . || $v ..) continue;$path $path_dir.rtrim($v,/);if (is_file($path)){$image (new imgcompress($path, 1))-compressImg($path);log_msg({$path}---);continue;}if (is_dir($path./)) scan_dir($path./);}
}
function log_msg($msg){echo $msg\r\n;
}
/*开始扫描文件夹*/
$source_dir ./testimages/;//目标路径
scan_dir($source_dir);