要在 PHP 中压缩图片,可以使用 GD 库来进行图像处理。下面是一个示例代码,演示如何使用 GD 库压缩图片:
<?php
// 读取原始图片
$sourceImage = imagecreatefromjpeg('original.jpg');
// 获取原始图片的宽度和高度
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);
// 计算压缩后的尺寸
$targetWidth = 800; // 压缩后的宽度
$targetHeight = ($sourceHeight / $sourceWidth) * $targetWidth;
// 创建一个新的目标画布
$targetImage = imagecreatetruecolor($targetWidth, $targetHeight);
// 将原始图片复制到目标画布并进行压缩
imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $sourceWidth, $sourceHeight);
// 保存压缩后的图片
imagejpeg($targetImage, 'compressed.jpg', 80); // 第三个参数是图像质量,可根据需要进行调整
// 释放内存
imagedestroy($sourceImage);
imagedestroy($targetImage);
?>
在上述代码中,我们首先使用 imagecreatefromjpeg() 函数从原始图片创建一个图像资源对象。然后,通过 imagesx() 和 imagesy() 函数获取原始图片的宽度和高度。
接下来,我们根据压缩后的期望宽度计算目标图片的高度。我们将创建一个具有目标尺寸的新画布,使用 imagecreatetruecolor() 函数创建。
然后,使用 imagecopyresampled() 函数将原始图片复制到目标画布,并进行压缩。这个函数会根据目标尺寸进行图像调整和压缩。
最后,我们使用 imagejpeg() 函数将压缩后的图像保存到指定文件名的 JPEG 文件中。第三个参数是图像质量,值的范围是 0-100,数字越大表示图像质量越好。
在完成图像处理后,我们使用 imagedestroy() 函数释放内存。
请确保你的 PHP 服务器上已经安装了 GD 库,并且你具备对原始图片所在目录的写入权限,以保存压缩后的图片。