引言

准备工作

在开始之前,请确保你的服务器已经安装了PHP和GD库,因为GD库是PHP处理图像的基础。

步骤一:读取图片文件

// 获取图片信息
$imageInfo = getimagesize('path/to/your/image.jpg');

步骤二:创建新图像资源

// 创建新图像资源
switch ($imageInfo[2]) {
    case IMAGETYPE_JPEG:
        $imageResource = imagecreatefromjpeg('path/to/your/image.jpg');
        break;
    case IMAGETYPE_PNG:
        $imageResource = imagecreatefrompng('path/to/your/image.png');
        break;
    // 添加其他图片类型处理
    default:
        die('Unsupported image type');
}

步骤三:设置缩略图尺寸

确定缩略图的目标宽度和高度。这里我们以宽度为100像素为例。

// 设置缩略图尺寸
$thumbnailWidth = 100;
$thumbnailHeight = ($imageInfo[1] * $thumbnailWidth) / $imageInfo[0];

步骤四:创建缩略图资源

使用imagecreatetruecolor()函数创建一个新的图像资源,用于存放缩略图。

// 创建缩略图资源
$thumbnailResource = imagecreatetruecolor($thumbnailWidth, $thumbnailHeight);

步骤五:复制图像

将原始图像复制到缩略图资源中,并调整大小。

// 复制图像
imagecopyresampled($thumbnailResource, $imageResource, 0, 0, 0, 0, $thumbnailWidth, $thumbnailHeight, $imageInfo[0], $imageInfo[1]);

步骤六:输出缩略图

将缩略图输出到浏览器或保存到服务器。

// 输出缩略图
header('Content-Type: image/jpeg');
imagejpeg($thumbnailResource, null, 90); // 设置质量为90

// 或者保存到服务器
imagejpeg($thumbnailResource, 'path/to/save/thumbnail.jpg');

步骤七:清理资源

处理完图像后,释放图像资源以避免内存泄漏。

// 清理资源
imagedestroy($imageResource);
imagedestroy($thumbnailResource);

总结