一、准备环境

  • GD库:用于处理图片,是PHP处理图片的核心库。
  • ImageMagick:如果您的服务器支持,ImageMagick扩展可以提供更强大的图片处理功能。

您可以通过以下命令检查是否已安装这些扩展:

phpinfo();

phpinfo()输出中找到相关扩展模块,确认它们已经启用。

二、选择合适的图片格式

  • JPEG:适用于照片,支持有损压缩。
  • PNG:适用于图形和图标,支持无损压缩。
  • GIF:适用于动画和简单的图形,支持透明背景。

三、使用GD库调整图片大小

<?php
// 载入原图
$image = imagecreatefromjpeg('path/to/your/image.jpg');

// 获取原图尺寸
$originalWidth = imagesx($image);
$originalHeight = imagesy($image);

// 设置目标宽度
$targetWidth = 800;

// 计算目标高度,保持图片宽高比
$targetHeight = ($originalHeight * $targetWidth) / $originalWidth;

// 创建新的图片资源
$newImage = imagecreatetruecolor($targetWidth, $targetHeight);

// 复制原图内容到新图片
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $targetWidth, $targetHeight, $originalWidth, $originalHeight);

// 输出新图片
header('Content-Type: image/jpeg');
imagejpeg($newImage);

// 释放资源
imagedestroy($image);
imagedestroy($newImage);
?>

四、使用ImageMagick扩展调整图片大小

<?php
// 载入原图
$image = new Imagick('path/to/your/image.jpg');

// 设置目标宽度
$image->resizeImage(800, 0, Imagick::FILTER_LANCZOS, 1);

// 输出新图片
header('Content-Type: image/jpeg');
echo $image->getImageBlob();

// 释放资源
$image->clear();
$image->destroy();
?>

五、总结