引言
准备工作
在开始之前,请确保你的服务器已经安装了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);