一、准备工作

在开始之前,请确保你的PHP环境中安装了GD库,这是处理图像所必需的。以下是在Linux系统中安装GD库的命令:

sudo apt-get install php-gd

二、选择合适的图片处理函数

// 从JPEG图片文件创建图像资源
$image = imagecreatefromjpeg('example.jpg');

// 从PNG图片文件创建图像资源
$image = imagecreatefrompng('example.png');

// 从GIF图片文件创建图像资源
$image = imagecreatefromgif('example.gif');

三、计算缩放比例

function resizeImage($image, $newWidth, $newHeight) {
    // 计算缩放比例
    $ratioWidth = $newWidth / imagesx($image);
    $ratioHeight = $newHeight / imagesy($image);

    // 获取最小的缩放比例
    $ratio = min($ratioWidth, $ratioHeight);

    // 计算新的宽度和高度
    $newWidth = $ratio * imagesx($image);
    $newHeight = $ratio * imagesy($image);

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

    // 复制图像
    imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, imagesx($image), imagesy($image));

    // 返回新图像资源
    return $newImage;
}

四、保存和输出图片

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

// 输出图片到浏览器
header('Content-Type: image/jpeg');
imagejpeg($newImage);

五、示例代码

// 从JPEG图片文件创建图像资源
$image = imagecreatefromjpeg('example.jpg');

// 调用resizeImage函数进行缩放
$newImage = resizeImage($image, 500, 300);

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

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