当前位置: 首页> 最新文章列表> PHP实现等比例压缩图片的方法与代码示例

PHP实现等比例压缩图片的方法与代码示例

gitbox 2025-08-07

概述

在现代网站开发中,优化图片大小对于提升页面加载速度和用户体验尤为重要。通过等比例压缩技术,可以在保持图片原有宽高比的前提下,有效减少图片文件体积。本文将介绍如何利用PHP中的GD库实现这一功能,并提供实用的代码示例。

等比例压缩的实现原理

等比例压缩图片的基本思路是:依据目标宽度(或高度),根据原始图片的宽高比计算出对应的目标高度(或宽度),以保持图片不变形。使用PHP的GD扩展可以方便地完成这一处理,包括读取图片信息、创建画布、缩放并输出图片等步骤。

获取原始图片尺寸

第一步是通过getimagesize()函数读取原始图片的宽高:


$originalImagePath = 'path/to/original/image.jpg';
$originalImageSize = getimagesize($originalImagePath);
$originalWidth = $originalImageSize[0];
$originalHeight = $originalImageSize[1];

计算等比例压缩的目标尺寸

以设定目标宽度为基础,按照比例计算目标高度:


$targetWidth = 800;
$targetHeight = $originalHeight * ($targetWidth / $originalWidth);

创建图片资源并执行压缩

使用GD库创建图像资源并进行等比例压缩处理:


$originalImage = imagecreatefromjpeg($originalImagePath);
$targetImage = imagecreatetruecolor($targetWidth, $targetHeight);

接下来,通过imagecopyresampled()函数进行图片缩放操作:


imagecopyresampled(
  $targetImage,
  $originalImage,
  0, 0, 0, 0,
  $targetWidth, $targetHeight,
  $originalWidth, $originalHeight
);

最后将压缩后的图片保存到指定路径:


$targetImagePath = 'path/to/target/image.jpg';
imagejpeg($targetImage, $targetImagePath, 80); // 压缩质量设为80%

总结

通过本文所展示的步骤,开发者可以轻松在PHP中实现图片的等比例压缩,既能保障图片质量,又能有效减少文件体积。此类处理尤其适用于需要优化前端性能的场景,如图集展示、文章封面图、商品图片等。掌握这项技术将有助于提升网站整体性能表现。