以下是使用 PHP 实现图片批量压缩的示例代码,这里借助了GD库来进行图片处理。示例代码假设要处理的图片都在同一个文件夹下(可根据实际需求调整路径等),并且是常见的图片格式(如jpg、png等),代码主要思路是遍历指定文件夹下的图片文件,然后逐个进行压缩处理。
<?php // 定义图片所在文件夹路径 $imageFolder = 'your_image_folder_path'; // 定义压缩后图片保存的文件夹路径,可按需修改,需确保该文件夹有写入权限 $compressedFolder = 'compressed_images_folder_path'; // 压缩质量(取值范围0 - 100,数值越小质量越低、文件越小),可按需调整 $quality = 80; // 检查指定的图片文件夹是否存在 if (!is_dir($imageFolder)) { die("图片文件夹不存在"); } // 检查压缩后图片保存的文件夹是否存在,不存在则创建 if (!is_dir($compressedFolder)) { mkdir($compressedFolder, 0777, true); } // 获取图片文件夹下所有文件 $files = scandir($imageFolder); foreach ($files as $file) { // 跳过. 和.. 这两个特殊目录项 if ($file === '.' || $file === '..') { continue; } $imagePath = $imageFolder. '/'. $file; $info = getimagesize($imagePath); if ($info === false) { continue; // 如果不是有效的图片文件则跳过 } // 根据图片类型创建对应的图像资源 switch ($info[2]) { case IMAGETYPE_JPEG: $image = imagecreatefromjpeg($imagePath); break; case IMAGETYPE_PNG: $image = imagecreatefrompng($imagePath); break; case IMAGETYPE_GIF: $image = imagecreatefromgif($imagePath); break; default: continue; // 不支持的图片类型则跳过 } // 获取图片原始宽度和高度 $width = imagesx($image); $height = imagesy($image); // 构建压缩后图片保存的路径 $compressedPath = $compressedFolder. '/'. $file; // 进行图片压缩并保存(这里以JPEG格式保存为例,若原先是PNG等可按需调整保存格式及相关参数) switch ($info[2]) { case IMAGETYPE_JPEG: imagejpeg($image, $compressedPath, $quality); break; case IMAGETYPE_PNG: imagepng($image, $compressedPath, 9); // 对于PNG可调整压缩级别(0 - 9),这里示例用9 break; case IMAGETYPE_GIF: imagegif($image, $compressedPath); break; } // 释放图像资源 imagedestroy($image); } echo "图片批量压缩完成"; ?>