欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > PHP:上传图片的图片压缩

PHP:上传图片的图片压缩

2025/4/8 5:52:50 来源:https://blog.csdn.net/weixin_46001736/article/details/144456113  浏览:    关键词:PHP:上传图片的图片压缩

上传图片

//调用方法
//上传公共文件-图片(基础信息)
function public_upload() {$file = $_FILES['file']; // 获取小程序传来的图片if (is_uploaded_file($_FILES['file']['tmp_name'])) {// 把文件转存到你希望的目录(不要使用copy函数)$uploaded_file = $_FILES['file']['tmp_name'];// 获取当前日期$current_date = date("Ymd");// 动态的创建一个文件夹$user_path = $_SERVER['DOCUMENT_ROOT'] . "/SO/baseinfo/{$current_date}/";// 判断该用户文件夹是否已经有这个文件夹if (!file_exists($user_path)) {mkdir($user_path, 0777, true);}// 获取文件名$file_true_name = $_FILES['file']['name'];// 生成随机数$random_number = mt_rand(1000000000000000, 9999999999999999); // 随机生成16位数字// 新文件名$new_file_name = $current_date . '_' . $random_number . '.' . pathinfo($file_true_name, PATHINFO_EXTENSION);// 文件需要移动到的路径$move_to_file = $user_path . "/" . $new_file_name;// 调用压缩图片的方法if (compress_image($uploaded_file, $move_to_file)) {$data = ['code' => 0,'msg' => '上传成功','info' => ['file_path' => "SO/baseinfo/{$current_date}/" . $new_file_name]];} else {$data = ['code' => 1, 'msg' => '压缩或保存图片失败'];}// 移动上传的文件// if (move_uploaded_file($uploaded_file, $move_to_file)) {//     $data = [//         'code' => 0,//         'msg' => '上传成功',//         'info' => ['file_path' => "SO/baseinfo/{$current_date}/" . $new_file_name]//     ];// } else {//     $data = ['code' => 1, 'msg' => '上传失败'];// }} else {$data = ['code' => 1, 'msg' => '上传失败'];}echo json_encode($data, JSON_UNESCAPED_SLASHES);
}

压缩图片方法

修图片宽高值,去压缩图片

function compress_image($source_path, $destination_path, $quality = 60, $max_width = 800, $max_height = 800) {// 获取图像信息list($width, $height, $type) = getimagesize($source_path);// 创建图像资源switch ($type) {case IMAGETYPE_JPEG:$image = imagecreatefromjpeg($source_path);break;case IMAGETYPE_PNG:$image = imagecreatefrompng($source_path);break;case IMAGETYPE_GIF:$image = imagecreatefromgif($source_path);break;default:return false; // 不支持的图片格式}// 调整图像分辨率if ($width > $max_width || $height > $max_height) {$ratio = min($max_width / $width, $max_height / $height);$new_width = $width * $ratio;$new_height = $height * $ratio;$resized_image = imagescale($image, $new_width, $new_height);imagedestroy($image); // 清除原始图像资源$image = $resized_image;}// 压缩并保存图片$success = false;switch ($type) {case IMAGETYPE_JPEG:$success = imagejpeg($image, $destination_path, $quality);break;case IMAGETYPE_PNG:// 对于PNG,我们一般不建议更改质量,因为它是一个无损格式$success = imagepng($image, $destination_path, 9);break;case IMAGETYPE_GIF:$success = imagegif($image, $destination_path);break;}// 清除内存中的图像资源imagedestroy($image);return $success;
}

不修改图片宽高值,去压缩图片

function compress_image($source_path, $destination_path, $quality = 60) {// 获取图像信息list($width, $height, $type) = getimagesize($source_path);// 创建图像资源switch ($type) {case IMAGETYPE_JPEG:$image = imagecreatefromjpeg($source_path);break;case IMAGETYPE_PNG:$image = imagecreatefrompng($source_path);break;case IMAGETYPE_GIF:$image = imagecreatefromgif($source_path);break;default:return false; // 不支持的图片格式}// 压缩并保存图片$success = false;switch ($type) {case IMAGETYPE_JPEG:$success = imagejpeg($image, $destination_path, $quality);break;case IMAGETYPE_PNG:// 对于PNG,我们一般不建议更改质量,因为它是一个无损格式$success = imagepng($image, $destination_path);break;case IMAGETYPE_GIF:$success = imagegif($image, $destination_path);break;}// 清除内存中的图像资源imagedestroy($image);return $success;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词