引言

准备工作

在开始之前,请确保您的PHP环境中已经安装并启用了GD库。您可以通过以下命令检查GD库是否安装:

php -m | grep -i gd

如果GD库未安装,请按照相应的系统说明进行安装。

创建图片资源

// 创建一个指定大小的真彩色图像资源
$image = imagecreatetruecolor($width, $height);

// 从文件创建图片资源
$image = imagecreatefromjpeg($imagePath);
$image = imagecreatefrompng($imagePath);
$image = imagecreatefromgif($imagePath);

图片缩放

// 计算缩放后的尺寸
$newWidth = $width * $scale;
$newHeight = $height * $scale;

// 创建一个新图像资源
$newImage = imagecreatetruecolor($newWidth, $newHeight);

// 缩放图片
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

// 释放原始图像资源
imagedestroy($image);

// 使用新的图像资源
$image = $newImage;

保存和输出图片

// 保存图片
imagejpeg($image, $savePath);

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

注意事项

  1. 使用imagecopyresampled函数时,请尽量减少缩放比例,以避免模糊现象。

实例总结

<?php
// 获取上传文件的路径
$imagePath = $_FILES['image']['tmp_name'];

// 指定缩放后的尺寸
$width = 100;
$height = 100;

// 创建一个新图像资源
$image = imagecreatefromjpeg($imagePath);

// 缩放图片
$newImage = imagecreatetruecolor($width, $height);
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $width, $height, imagesx($image), imagesy($image));

// 保存图片
imagejpeg($newImage, 'uploads/scaled_image.jpg');

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